From 7fab4fe6d3c9db7b89bffee3aa25b1152c186b0b Mon Sep 17 00:00:00 2001 From: nuclearfog Date: Fri, 6 Oct 2023 22:35:59 +0200 Subject: [PATCH] fixed error handling --- .../org/nuclearfog/twidda/backend/api/Connection.java | 2 +- .../nuclearfog/twidda/backend/api/mastodon/Mastodon.java | 7 ++----- .../twidda/backend/api/mastodon/MastodonException.java | 6 ++++-- .../nuclearfog/twidda/backend/async/AsyncExecutor.java | 8 +++----- .../nuclearfog/twidda/backend/async/StatusUpdater.java | 2 +- 5 files changed, 11 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/api/Connection.java b/app/src/main/java/org/nuclearfog/twidda/backend/api/Connection.java index a41f6716..f5ee8237 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/api/Connection.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/api/Connection.java @@ -552,7 +552,7 @@ public interface Connection { * @param mediaUpdate inputstream with MIME type of the media * @return media ID */ - long updateMedia(MediaStatus mediaUpdate) throws ConnectionException, InterruptedException; + long updateMedia(MediaStatus mediaUpdate) throws ConnectionException; /** * create Web push subscription diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/Mastodon.java b/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/Mastodon.java index cc5add59..144d2a52 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/Mastodon.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/Mastodon.java @@ -66,7 +66,6 @@ import org.nuclearfog.twidda.model.lists.Users; import java.io.IOException; import java.io.InputStream; -import java.io.InterruptedIOException; import java.security.InvalidAlgorithmParameterException; import java.security.KeyPair; import java.security.KeyPairGenerator; @@ -1170,7 +1169,7 @@ public class Mastodon implements Connection { @Override - public long updateMedia(MediaStatus mediaUpdate) throws MastodonException, InterruptedException { + public long updateMedia(MediaStatus mediaUpdate) throws MastodonException { try { List params = new ArrayList<>(); if (!mediaUpdate.getDescription().isEmpty()) @@ -1196,9 +1195,7 @@ public class Mastodon implements Connection { } } throw new MastodonException(response); - } catch (InterruptedIOException e) { - throw new InterruptedException(); - } catch (IOException | JSONException | NumberFormatException e) { + } catch (IOException | JSONException | NumberFormatException | InterruptedException e) { throw new MastodonException(e); } } diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/MastodonException.java b/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/MastodonException.java index 275b08f6..8e67a064 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/MastodonException.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/MastodonException.java @@ -8,7 +8,9 @@ import org.nuclearfog.twidda.BuildConfig; import org.nuclearfog.twidda.backend.api.ConnectionException; import java.io.IOException; +import java.io.InterruptedIOException; import java.net.ConnectException; +import java.net.SocketTimeoutException; import java.net.UnknownHostException; import okhttp3.Response; @@ -35,9 +37,9 @@ public class MastodonException extends ConnectionException { super(e); if (e instanceof JSONException) { errorCode = JSON_FORMAT; - } else if (e instanceof ConnectException || e instanceof UnknownHostException) { + } else if (e instanceof ConnectException || e instanceof UnknownHostException || e instanceof SocketTimeoutException) { errorCode = NO_CONNECTION; - } else if (getCause() instanceof InterruptedException) { + } else if (getCause() instanceof InterruptedException || e instanceof InterruptedIOException) { errorCode = INTERRUPTED; } } diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/async/AsyncExecutor.java b/app/src/main/java/org/nuclearfog/twidda/backend/async/AsyncExecutor.java index 6a207024..eab0ced6 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/async/AsyncExecutor.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/async/AsyncExecutor.java @@ -63,11 +63,9 @@ public abstract class AsyncExecutor { try { Result result = doInBackground(parameter); onPostExecute(result, callbackReference); - } catch (InterruptedException e) { - // caused by user interaction. No need to handle exception. - } catch (Exception e) { + } catch (RuntimeException exception) { if (BuildConfig.DEBUG) { - e.printStackTrace(); + exception.printStackTrace(); } } } @@ -120,7 +118,7 @@ public abstract class AsyncExecutor { * @return result of the background task */ @WorkerThread - protected abstract Result doInBackground(@NonNull Parameter param) throws InterruptedException; + protected abstract Result doInBackground(@NonNull Parameter param); /** * Callback used to send task result to main thread diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/async/StatusUpdater.java b/app/src/main/java/org/nuclearfog/twidda/backend/async/StatusUpdater.java index a266ee55..8e8fb086 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/async/StatusUpdater.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/async/StatusUpdater.java @@ -35,7 +35,7 @@ public class StatusUpdater extends AsyncExecutor mediaIds = new LinkedList<>();