void setFlag(@NotNull String folderServerId, @NotNull List<String> messageServerIds, @NotNull Flag flag, boolean newState) throws MessagingException { ImapFolder remoteFolder = imapStore.getFolder(folderServerId); if (!remoteFolder.exists() || !remoteFolder.isFlagSupported(flag)) { return; } try { remoteFolder.open(Folder.OPEN_MODE_RW); if (remoteFolder.getMode() != Folder.OPEN_MODE_RW) { return; } List<Message> messages = new ArrayList<>(); for (String uid : messageServerIds) { if (!uid.startsWith(BackendFolder.LOCAL_UID_PREFIX)) { messages.add(remoteFolder.getMessage(uid)); } } if (messages.isEmpty()) { return; } remoteFolder.setFlags(messages, Collections.singleton(flag), newState); } finally { remoteFolder.close(); } } }
void markAllAsRead(@NotNull String folderServerId) throws MessagingException { ImapFolder remoteFolder = imapStore.getFolder(folderServerId); if (!remoteFolder.exists()) { return; } try { remoteFolder.open(Folder.OPEN_MODE_RW); if (remoteFolder.getMode() != Folder.OPEN_MODE_RW) { return; } remoteFolder.setFlags(Collections.singleton(Flag.SEEN), true); } finally { remoteFolder.close(); } } }
if (remoteSrcFolder.getMode() != Folder.OPEN_MODE_RW) { throw new MessagingException("processingPendingMoveOrCopy: could not open remoteSrcFolder " + srcFolder + " read/write", true);
@Test public void open_readWrite_shouldMakeGetModeReturnReadWrite() throws Exception { ImapFolder imapFolder = createFolder("Folder"); prepareImapFolderForOpen(OPEN_MODE_RW); imapFolder.open(OPEN_MODE_RW); assertEquals(OPEN_MODE_RW, imapFolder.getMode()); }
@Test public void open_readOnly_shouldMakeGetModeReturnReadOnly() throws Exception { ImapFolder imapFolder = createFolder("Folder"); prepareImapFolderForOpen(OPEN_MODE_RO); imapFolder.open(OPEN_MODE_RO); assertEquals(OPEN_MODE_RO, imapFolder.getMode()); }