Improved error handling

pull/147/head
M66B 7 years ago
parent cb7565fa9e
commit 697659e631

@ -44,7 +44,6 @@ import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
import android.os.PowerManager; import android.os.PowerManager;
import android.os.SystemClock; import android.os.SystemClock;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
@ -1001,16 +1000,17 @@ public class ServiceSynchronize extends LifecycleService {
} }
} catch (MessageRemovedException ex) { } catch (MessageRemovedException ex) {
Log.w(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex)); Log.w(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex));
} catch (FolderClosedException ex) {
throw ex;
} catch (IOException ex) { } catch (IOException ex) {
if (ex.getCause() instanceof MessageRemovedException) throw ex;
Log.w(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex)); } catch (Throwable ex) {
else Log.e(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex));
throw ex; db.folder().setFolderError(folder.id, Helper.formatThrowable(ex));
} }
} catch (Throwable ex) { } catch (Throwable ex) {
Log.e(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex)); Log.e(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex));
reportError(account, folder, ex); reportError(account, folder, ex);
db.folder().setFolderError(folder.id, Helper.formatThrowable(ex));
state.error(); state.error();
} finally { } finally {
wlAccount.release(); wlAccount.release();
@ -1081,16 +1081,17 @@ public class ServiceSynchronize extends LifecycleService {
} }
} catch (MessageRemovedException ex) { } catch (MessageRemovedException ex) {
Log.w(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex)); Log.w(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex));
} catch (FolderClosedException ex) {
throw ex;
} catch (IOException ex) { } catch (IOException ex) {
if (ex.getCause() instanceof MessageRemovedException) throw ex;
Log.w(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex)); } catch (Throwable ex) {
else Log.e(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex));
throw ex; db.folder().setFolderError(folder.id, Helper.formatThrowable(ex));
} }
} catch (Throwable ex) { } catch (Throwable ex) {
Log.e(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex)); Log.e(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex));
reportError(account, folder, ex); reportError(account, folder, ex);
db.folder().setFolderError(folder.id, Helper.formatThrowable(ex));
state.error(); state.error();
} finally { } finally {
wlAccount.release(); wlAccount.release();
@ -2093,10 +2094,11 @@ public class ServiceSynchronize extends LifecycleService {
Log.w(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex)); Log.w(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex));
} catch (FolderClosedException ex) { } catch (FolderClosedException ex) {
throw ex; throw ex;
} catch (FolderClosedIOException ex) { } catch (IOException ex) {
throw ex; throw ex;
} catch (Throwable ex) { } catch (Throwable ex) {
Log.e(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex)); Log.e(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex));
db.folder().setFolderError(folder.id, Helper.formatThrowable(ex));
} finally { } finally {
db.endTransaction(); db.endTransaction();
// Reduce memory usage // Reduce memory usage

@ -217,13 +217,15 @@ public class ViewModelBrowse extends ViewModel {
count++; count++;
} }
db.message().setMessageFound(message.account, message.thread); db.message().setMessageFound(message.account, message.thread);
} catch (MessageRemovedException ex) {
Log.w(Helper.TAG, folder.name + "Boundary " + ex + "\n" + Log.getStackTraceString(ex));
} catch (FolderClosedException ex) {
throw ex;
} catch (IOException ex) {
throw ex;
} catch (Throwable ex) { } catch (Throwable ex) {
if ((ex instanceof MessageRemovedException) || (ex instanceof FolderClosedException)) Log.e(Helper.TAG, folder.name + "Boundary " + ex + "\n" + Log.getStackTraceString(ex));
Log.w(Helper.TAG, "Boundary " + ex + "\n" + Log.getStackTraceString(ex)); db.folder().setFolderError(folder.id, Helper.formatThrowable(ex));
else {
Log.e(Helper.TAG, "Boundary " + ex + "\n" + Log.getStackTraceString(ex));
throw ex;
}
} finally { } finally {
((IMAPMessage) isub[j]).invalidateHeaders(); ((IMAPMessage) isub[j]).invalidateHeaders();
} }

Loading…
Cancel
Save