Loading app/core/src/main/java/com/fsck/k9/controller/MessagingController.java +71 −119 Original line number Diff line number Diff line Loading @@ -671,12 +671,6 @@ public class MessagingController { notificationController.showAuthenticationErrorNotification(account, incoming); } private static void closeFolder(LocalFolder f) { if (f != null) { f.close(); } } private void queuePendingCommand(Account account, PendingCommand command) { try { LocalStore localStore = localStoreProvider.getInstance(account); Loading Loading @@ -756,7 +750,6 @@ public class MessagingController { LocalStore localStore = localStoreProvider.getInstance(account); long folderId = command.folderId; LocalFolder localFolder = localStore.getFolder(folderId); try { localFolder.open(); String folderServerId = localFolder.getServerId(); Loading Loading @@ -822,9 +815,6 @@ public class MessagingController { l.messageUidChanged(account, folderId, oldUid, localMessage.getUid()); } } } finally { localFolder.close(); } } private void queueMoveOrCopy(Account account, long srcFolderId, long destFolderId, MoveOrCopyFlavor operation, Loading Loading @@ -1012,10 +1002,8 @@ public class MessagingController { LocalStore localStore = localStoreProvider.getInstance(account); LocalFolder localFolder = localStore.getFolder(command.folderId); String folderServerId; try { localFolder.open(); folderServerId = localFolder.getServerId(); String folderServerId = localFolder.getServerId(); Timber.i("Marking all messages in %s:%s as read", account, folderServerId); Loading @@ -1030,9 +1018,6 @@ public class MessagingController { for (MessagingListener l : getListeners()) { l.folderStatusChanged(account, folderServerId); } } finally { localFolder.close(); } Backend backend = getBackend(account); if (backend.getSupportsSeenFlag()) { Loading Loading @@ -1137,10 +1122,9 @@ public class MessagingController { public void setFlag(Account account, long folderId, List<LocalMessage> messages, Flag flag, boolean newState) { // TODO: Put this into the background, but right now some callers depend on the message // objects being modified right after this method returns. LocalFolder localFolder = null; try { LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(folderId); LocalFolder localFolder = localStore.getFolder(folderId); localFolder.open(); // Update the messages in the local store Loading @@ -1163,8 +1147,6 @@ public class MessagingController { processPendingCommands(account); } catch (MessagingException me) { throw new RuntimeException(me); } finally { closeFolder(localFolder); } } Loading @@ -1172,10 +1154,9 @@ public class MessagingController { * Set or remove a flag for a message referenced by message UID. */ public void setFlag(Account account, long folderId, String uid, Flag flag, boolean newState) { LocalFolder localFolder = null; try { LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(folderId); LocalFolder localFolder = localStore.getFolder(folderId); localFolder.open(); LocalMessage message = localFolder.getMessage(uid); Loading @@ -1184,8 +1165,6 @@ public class MessagingController { } } catch (MessagingException me) { throw new RuntimeException(me); } finally { closeFolder(localFolder); } } Loading Loading @@ -1214,10 +1193,9 @@ public class MessagingController { private void loadMessageRemoteSynchronous(Account account, long folderId, String uid, MessagingListener listener, boolean loadPartialFromSearch) { LocalFolder localFolder = null; try { LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(folderId); LocalFolder localFolder = localStore.getFolder(folderId); localFolder.open(); String folderServerId = localFolder.getServerId(); Loading Loading @@ -1265,8 +1243,6 @@ public class MessagingController { } notifyUserIfCertificateProblem(account, e, true); Timber.e(e, "Error while loading remote message"); } finally { closeFolder(localFolder); } } Loading @@ -1284,7 +1260,6 @@ public class MessagingController { FetchProfile fp = new FetchProfile(); fp.add(FetchProfile.Item.BODY); localFolder.fetch(Collections.singletonList(message), fp, null); localFolder.close(); notificationController.removeNewMailNotification(account, message.makeMessageReference()); markMessageAsReadOnView(account, message); Loading @@ -1306,7 +1281,6 @@ public class MessagingController { FetchProfile fp = new FetchProfile(); fp.add(FetchProfile.Item.ENVELOPE); localFolder.fetch(Collections.singletonList(message), fp, null); localFolder.close(); return message; } Loading @@ -1328,12 +1302,11 @@ public class MessagingController { put("loadAttachment", listener, new Runnable() { @Override public void run() { LocalFolder localFolder = null; try { String folderServerId = message.getFolder().getServerId(); LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(folderServerId); LocalFolder localFolder = localStore.getFolder(folderServerId); ProgressBodyFactory bodyFactory = new ProgressBodyFactory(new ProgressListener() { @Override Loading @@ -1359,8 +1332,6 @@ public class MessagingController { l.loadAttachmentFailed(account, message, part, me.getMessage()); } notifyUserIfCertificateProblem(account, me, true); } finally { closeFolder(localFolder); } } }); Loading @@ -1385,7 +1356,6 @@ public class MessagingController { if (plaintextSubject != null) { localMessage.setCachedDecryptedSubject(plaintextSubject); } localFolder.close(); OutboxStateRepository outboxStateRepository = localStore.getOutboxStateRepository(); outboxStateRepository.initializeOutboxState(messageId); Loading Loading @@ -1454,9 +1424,8 @@ public class MessagingController { } private boolean messagesPendingSend(final Account account) { LocalFolder localFolder = null; try { localFolder = localStoreProvider.getInstance(account).getFolder(account.getOutboxFolderId()); LocalFolder localFolder = localStoreProvider.getInstance(account).getFolder(account.getOutboxFolderId()); if (!localFolder.exists()) { return false; } Loading @@ -1468,8 +1437,6 @@ public class MessagingController { } } catch (Exception e) { Timber.e(e, "Exception while checking for unsent messages"); } finally { closeFolder(localFolder); } return false; } Loading @@ -1479,13 +1446,12 @@ public class MessagingController { */ @VisibleForTesting protected void sendPendingMessagesSynchronous(final Account account) { LocalFolder localFolder = null; Exception lastFailure = null; boolean wasPermanentFailure = false; try { LocalStore localStore = localStoreProvider.getInstance(account); OutboxStateRepository outboxStateRepository = localStore.getOutboxStateRepository(); localFolder = localStore.getFolder(account.getOutboxFolderId()); LocalFolder localFolder = localStore.getFolder(account.getOutboxFolderId()); if (!localFolder.exists()) { Timber.v("Outbox does not exist"); return; Loading Loading @@ -1614,7 +1580,6 @@ public class MessagingController { if (lastFailure == null) { notificationController.clearSendFailedNotification(account); } closeFolder(localFolder); } } Loading Loading @@ -1885,7 +1850,6 @@ public class MessagingController { } public void deleteDraft(final Account account, long id) { LocalFolder localFolder = null; try { Long folderId = account.getDraftsFolderId(); if (folderId == null) { Loading @@ -1894,7 +1858,7 @@ public class MessagingController { } LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(folderId); LocalFolder localFolder = localStore.getFolder(folderId); localFolder.open(); String uid = localFolder.getMessageUidById(id); if (uid != null) { Loading @@ -1903,8 +1867,6 @@ public class MessagingController { } } catch (MessagingException me) { Timber.e(me, "Error deleting draft"); } finally { closeFolder(localFolder); } } Loading Loading @@ -2007,8 +1969,6 @@ public class MessagingController { private void deleteMessagesSynchronous(final Account account, final String folder, final List<LocalMessage> messages, MessagingListener listener) { LocalFolder localFolder = null; LocalFolder localTrashFolder = null; try { List<LocalMessage> localOnlyMessages = new ArrayList<>(); List<LocalMessage> syncedMessages = new ArrayList<>(); Loading @@ -2026,12 +1986,13 @@ public class MessagingController { Backend backend = getBackend(account); LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(folder); LocalFolder localFolder = localStore.getFolder(folder); localFolder.open(); long folderId = localFolder.getDatabaseId(); Map<String, String> uidMap = null; Long trashFolderId = account.getTrashFolderId(); LocalFolder localTrashFolder = null; if (!account.hasTrashFolder() || folderId == trashFolderId || (backend.getSupportsTrashFolder() && !backend.isDeleteMoveToTrash())) { Timber.d("Not moving deleted messages to local Trash folder. Removing local copies."); Loading Loading @@ -2097,9 +2058,6 @@ public class MessagingController { throw new UnavailableAccountException(e); } catch (MessagingException me) { throw new RuntimeException("Error deleting message from local store.", me); } finally { closeFolder(localFolder); closeFolder(localTrashFolder); } } Loading Loading @@ -2139,7 +2097,6 @@ public class MessagingController { putBackground("emptyTrash", listener, new Runnable() { @Override public void run() { LocalFolder localFolder = null; try { Long trashFolderId = account.getTrashFolderId(); if (trashFolderId == null) { Loading @@ -2148,7 +2105,7 @@ public class MessagingController { } LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(trashFolderId); LocalFolder localFolder = localStore.getFolder(trashFolderId); localFolder.open(); String trashFolderServerId = localFolder.getServerId(); Loading @@ -2174,8 +2131,6 @@ public class MessagingController { throw new UnavailableAccountException(e); } catch (Exception e) { Timber.e(e, "emptyTrash failed"); } finally { closeFolder(localFolder); } } }); Loading @@ -2189,9 +2144,8 @@ public class MessagingController { @VisibleForTesting protected void clearFolderSynchronous(Account account, long folderId) { LocalFolder localFolder = null; try { localFolder = localStoreProvider.getInstance(account).getFolder(folderId); LocalFolder localFolder = localStoreProvider.getInstance(account).getFolder(folderId); localFolder.open(); localFolder.clearAllMessages(); } catch (UnavailableStorageException e) { Loading @@ -2199,8 +2153,6 @@ public class MessagingController { throw new UnavailableAccountException(e); } catch (Exception e) { Timber.e(e, "clearFolder failed"); } finally { closeFolder(localFolder); } } Loading app/core/src/main/java/com/fsck/k9/mailstore/LocalFolder.java +0 −5 Original line number Diff line number Diff line Loading @@ -60,7 +60,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; Loading Loading @@ -324,10 +323,6 @@ public class LocalFolder { boolean integrate = isIntegrate; } public void close() { databaseId = -1; } public int getMessageCount() throws MessagingException { try { return this.localStore.getDatabase().execute(false, new DbCallback<Integer>() { Loading app/core/src/main/java/com/fsck/k9/provider/RawMessageProvider.java +0 −1 Original line number Diff line number Diff line Loading @@ -196,7 +196,6 @@ public class RawMessageProvider extends ContentProvider { FetchProfile fetchProfile = new FetchProfile(); fetchProfile.add(FetchProfile.Item.BODY); localFolder.fetch(Collections.singletonList(message), fetchProfile, null); localFolder.close(); return message; } catch (MessagingException e) { Loading app/core/src/test/java/com/fsck/k9/controller/MessagingControllerTest.java +0 −19 Original line number Diff line number Diff line Loading @@ -170,13 +170,6 @@ public class MessagingControllerTest extends K9RobolectricTest { verify(localFolder).clearAllMessages(); } @Test public void clearFolderSynchronous_shouldCloseTheFolder() throws MessagingException { controller.clearFolderSynchronous(account, FOLDER_ID); verify(localFolder, atLeastOnce()).close(); } @Test(expected = UnavailableAccountException.class) public void clearFolderSynchronous_whenStorageUnavailable_shouldThrowUnavailableAccountException() throws MessagingException { doThrow(new UnavailableStorageException("Test")).when(localFolder).open(); Loading @@ -184,18 +177,6 @@ public class MessagingControllerTest extends K9RobolectricTest { controller.clearFolderSynchronous(account, FOLDER_ID); } @Test() public void clearFolderSynchronous_whenExceptionThrown_shouldStillCloseFolder() throws MessagingException { doThrow(new RuntimeException("Test")).when(localFolder).open(); try { controller.clearFolderSynchronous(account, FOLDER_ID); } catch (Exception ignored){ } verify(localFolder, atLeastOnce()).close(); } @Test public void refreshRemoteSynchronous_shouldCallBackend() throws MessagingException { controller.refreshFolderListSynchronous(account); Loading Loading
app/core/src/main/java/com/fsck/k9/controller/MessagingController.java +71 −119 Original line number Diff line number Diff line Loading @@ -671,12 +671,6 @@ public class MessagingController { notificationController.showAuthenticationErrorNotification(account, incoming); } private static void closeFolder(LocalFolder f) { if (f != null) { f.close(); } } private void queuePendingCommand(Account account, PendingCommand command) { try { LocalStore localStore = localStoreProvider.getInstance(account); Loading Loading @@ -756,7 +750,6 @@ public class MessagingController { LocalStore localStore = localStoreProvider.getInstance(account); long folderId = command.folderId; LocalFolder localFolder = localStore.getFolder(folderId); try { localFolder.open(); String folderServerId = localFolder.getServerId(); Loading Loading @@ -822,9 +815,6 @@ public class MessagingController { l.messageUidChanged(account, folderId, oldUid, localMessage.getUid()); } } } finally { localFolder.close(); } } private void queueMoveOrCopy(Account account, long srcFolderId, long destFolderId, MoveOrCopyFlavor operation, Loading Loading @@ -1012,10 +1002,8 @@ public class MessagingController { LocalStore localStore = localStoreProvider.getInstance(account); LocalFolder localFolder = localStore.getFolder(command.folderId); String folderServerId; try { localFolder.open(); folderServerId = localFolder.getServerId(); String folderServerId = localFolder.getServerId(); Timber.i("Marking all messages in %s:%s as read", account, folderServerId); Loading @@ -1030,9 +1018,6 @@ public class MessagingController { for (MessagingListener l : getListeners()) { l.folderStatusChanged(account, folderServerId); } } finally { localFolder.close(); } Backend backend = getBackend(account); if (backend.getSupportsSeenFlag()) { Loading Loading @@ -1137,10 +1122,9 @@ public class MessagingController { public void setFlag(Account account, long folderId, List<LocalMessage> messages, Flag flag, boolean newState) { // TODO: Put this into the background, but right now some callers depend on the message // objects being modified right after this method returns. LocalFolder localFolder = null; try { LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(folderId); LocalFolder localFolder = localStore.getFolder(folderId); localFolder.open(); // Update the messages in the local store Loading @@ -1163,8 +1147,6 @@ public class MessagingController { processPendingCommands(account); } catch (MessagingException me) { throw new RuntimeException(me); } finally { closeFolder(localFolder); } } Loading @@ -1172,10 +1154,9 @@ public class MessagingController { * Set or remove a flag for a message referenced by message UID. */ public void setFlag(Account account, long folderId, String uid, Flag flag, boolean newState) { LocalFolder localFolder = null; try { LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(folderId); LocalFolder localFolder = localStore.getFolder(folderId); localFolder.open(); LocalMessage message = localFolder.getMessage(uid); Loading @@ -1184,8 +1165,6 @@ public class MessagingController { } } catch (MessagingException me) { throw new RuntimeException(me); } finally { closeFolder(localFolder); } } Loading Loading @@ -1214,10 +1193,9 @@ public class MessagingController { private void loadMessageRemoteSynchronous(Account account, long folderId, String uid, MessagingListener listener, boolean loadPartialFromSearch) { LocalFolder localFolder = null; try { LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(folderId); LocalFolder localFolder = localStore.getFolder(folderId); localFolder.open(); String folderServerId = localFolder.getServerId(); Loading Loading @@ -1265,8 +1243,6 @@ public class MessagingController { } notifyUserIfCertificateProblem(account, e, true); Timber.e(e, "Error while loading remote message"); } finally { closeFolder(localFolder); } } Loading @@ -1284,7 +1260,6 @@ public class MessagingController { FetchProfile fp = new FetchProfile(); fp.add(FetchProfile.Item.BODY); localFolder.fetch(Collections.singletonList(message), fp, null); localFolder.close(); notificationController.removeNewMailNotification(account, message.makeMessageReference()); markMessageAsReadOnView(account, message); Loading @@ -1306,7 +1281,6 @@ public class MessagingController { FetchProfile fp = new FetchProfile(); fp.add(FetchProfile.Item.ENVELOPE); localFolder.fetch(Collections.singletonList(message), fp, null); localFolder.close(); return message; } Loading @@ -1328,12 +1302,11 @@ public class MessagingController { put("loadAttachment", listener, new Runnable() { @Override public void run() { LocalFolder localFolder = null; try { String folderServerId = message.getFolder().getServerId(); LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(folderServerId); LocalFolder localFolder = localStore.getFolder(folderServerId); ProgressBodyFactory bodyFactory = new ProgressBodyFactory(new ProgressListener() { @Override Loading @@ -1359,8 +1332,6 @@ public class MessagingController { l.loadAttachmentFailed(account, message, part, me.getMessage()); } notifyUserIfCertificateProblem(account, me, true); } finally { closeFolder(localFolder); } } }); Loading @@ -1385,7 +1356,6 @@ public class MessagingController { if (plaintextSubject != null) { localMessage.setCachedDecryptedSubject(plaintextSubject); } localFolder.close(); OutboxStateRepository outboxStateRepository = localStore.getOutboxStateRepository(); outboxStateRepository.initializeOutboxState(messageId); Loading Loading @@ -1454,9 +1424,8 @@ public class MessagingController { } private boolean messagesPendingSend(final Account account) { LocalFolder localFolder = null; try { localFolder = localStoreProvider.getInstance(account).getFolder(account.getOutboxFolderId()); LocalFolder localFolder = localStoreProvider.getInstance(account).getFolder(account.getOutboxFolderId()); if (!localFolder.exists()) { return false; } Loading @@ -1468,8 +1437,6 @@ public class MessagingController { } } catch (Exception e) { Timber.e(e, "Exception while checking for unsent messages"); } finally { closeFolder(localFolder); } return false; } Loading @@ -1479,13 +1446,12 @@ public class MessagingController { */ @VisibleForTesting protected void sendPendingMessagesSynchronous(final Account account) { LocalFolder localFolder = null; Exception lastFailure = null; boolean wasPermanentFailure = false; try { LocalStore localStore = localStoreProvider.getInstance(account); OutboxStateRepository outboxStateRepository = localStore.getOutboxStateRepository(); localFolder = localStore.getFolder(account.getOutboxFolderId()); LocalFolder localFolder = localStore.getFolder(account.getOutboxFolderId()); if (!localFolder.exists()) { Timber.v("Outbox does not exist"); return; Loading Loading @@ -1614,7 +1580,6 @@ public class MessagingController { if (lastFailure == null) { notificationController.clearSendFailedNotification(account); } closeFolder(localFolder); } } Loading Loading @@ -1885,7 +1850,6 @@ public class MessagingController { } public void deleteDraft(final Account account, long id) { LocalFolder localFolder = null; try { Long folderId = account.getDraftsFolderId(); if (folderId == null) { Loading @@ -1894,7 +1858,7 @@ public class MessagingController { } LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(folderId); LocalFolder localFolder = localStore.getFolder(folderId); localFolder.open(); String uid = localFolder.getMessageUidById(id); if (uid != null) { Loading @@ -1903,8 +1867,6 @@ public class MessagingController { } } catch (MessagingException me) { Timber.e(me, "Error deleting draft"); } finally { closeFolder(localFolder); } } Loading Loading @@ -2007,8 +1969,6 @@ public class MessagingController { private void deleteMessagesSynchronous(final Account account, final String folder, final List<LocalMessage> messages, MessagingListener listener) { LocalFolder localFolder = null; LocalFolder localTrashFolder = null; try { List<LocalMessage> localOnlyMessages = new ArrayList<>(); List<LocalMessage> syncedMessages = new ArrayList<>(); Loading @@ -2026,12 +1986,13 @@ public class MessagingController { Backend backend = getBackend(account); LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(folder); LocalFolder localFolder = localStore.getFolder(folder); localFolder.open(); long folderId = localFolder.getDatabaseId(); Map<String, String> uidMap = null; Long trashFolderId = account.getTrashFolderId(); LocalFolder localTrashFolder = null; if (!account.hasTrashFolder() || folderId == trashFolderId || (backend.getSupportsTrashFolder() && !backend.isDeleteMoveToTrash())) { Timber.d("Not moving deleted messages to local Trash folder. Removing local copies."); Loading Loading @@ -2097,9 +2058,6 @@ public class MessagingController { throw new UnavailableAccountException(e); } catch (MessagingException me) { throw new RuntimeException("Error deleting message from local store.", me); } finally { closeFolder(localFolder); closeFolder(localTrashFolder); } } Loading Loading @@ -2139,7 +2097,6 @@ public class MessagingController { putBackground("emptyTrash", listener, new Runnable() { @Override public void run() { LocalFolder localFolder = null; try { Long trashFolderId = account.getTrashFolderId(); if (trashFolderId == null) { Loading @@ -2148,7 +2105,7 @@ public class MessagingController { } LocalStore localStore = localStoreProvider.getInstance(account); localFolder = localStore.getFolder(trashFolderId); LocalFolder localFolder = localStore.getFolder(trashFolderId); localFolder.open(); String trashFolderServerId = localFolder.getServerId(); Loading @@ -2174,8 +2131,6 @@ public class MessagingController { throw new UnavailableAccountException(e); } catch (Exception e) { Timber.e(e, "emptyTrash failed"); } finally { closeFolder(localFolder); } } }); Loading @@ -2189,9 +2144,8 @@ public class MessagingController { @VisibleForTesting protected void clearFolderSynchronous(Account account, long folderId) { LocalFolder localFolder = null; try { localFolder = localStoreProvider.getInstance(account).getFolder(folderId); LocalFolder localFolder = localStoreProvider.getInstance(account).getFolder(folderId); localFolder.open(); localFolder.clearAllMessages(); } catch (UnavailableStorageException e) { Loading @@ -2199,8 +2153,6 @@ public class MessagingController { throw new UnavailableAccountException(e); } catch (Exception e) { Timber.e(e, "clearFolder failed"); } finally { closeFolder(localFolder); } } Loading
app/core/src/main/java/com/fsck/k9/mailstore/LocalFolder.java +0 −5 Original line number Diff line number Diff line Loading @@ -60,7 +60,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; Loading Loading @@ -324,10 +323,6 @@ public class LocalFolder { boolean integrate = isIntegrate; } public void close() { databaseId = -1; } public int getMessageCount() throws MessagingException { try { return this.localStore.getDatabase().execute(false, new DbCallback<Integer>() { Loading
app/core/src/main/java/com/fsck/k9/provider/RawMessageProvider.java +0 −1 Original line number Diff line number Diff line Loading @@ -196,7 +196,6 @@ public class RawMessageProvider extends ContentProvider { FetchProfile fetchProfile = new FetchProfile(); fetchProfile.add(FetchProfile.Item.BODY); localFolder.fetch(Collections.singletonList(message), fetchProfile, null); localFolder.close(); return message; } catch (MessagingException e) { Loading
app/core/src/test/java/com/fsck/k9/controller/MessagingControllerTest.java +0 −19 Original line number Diff line number Diff line Loading @@ -170,13 +170,6 @@ public class MessagingControllerTest extends K9RobolectricTest { verify(localFolder).clearAllMessages(); } @Test public void clearFolderSynchronous_shouldCloseTheFolder() throws MessagingException { controller.clearFolderSynchronous(account, FOLDER_ID); verify(localFolder, atLeastOnce()).close(); } @Test(expected = UnavailableAccountException.class) public void clearFolderSynchronous_whenStorageUnavailable_shouldThrowUnavailableAccountException() throws MessagingException { doThrow(new UnavailableStorageException("Test")).when(localFolder).open(); Loading @@ -184,18 +177,6 @@ public class MessagingControllerTest extends K9RobolectricTest { controller.clearFolderSynchronous(account, FOLDER_ID); } @Test() public void clearFolderSynchronous_whenExceptionThrown_shouldStillCloseFolder() throws MessagingException { doThrow(new RuntimeException("Test")).when(localFolder).open(); try { controller.clearFolderSynchronous(account, FOLDER_ID); } catch (Exception ignored){ } verify(localFolder, atLeastOnce()).close(); } @Test public void refreshRemoteSynchronous_shouldCallBackend() throws MessagingException { controller.refreshFolderListSynchronous(account); Loading