/** * Return the fully qualified name of the folder, for use in log messages. * Essentially just the getURLName method, but ignoring the * MessagingException that can never happen. */ private static String folderName(Folder folder) { try { return folder.getURLName().toString(); } catch (MessagingException mex) { // can't happen return folder.getStore().toString() + "/" + folder.toString(); } } }
/** * Return the fully qualified name of the folder, for use in log messages. * Essentially just the getURLName method, but ignoring the * MessagingException that can never happen. */ private static String folderName(Folder folder) { try { return folder.getURLName().toString(); } catch (MessagingException mex) { // can't happen return folder.getStore().toString() + "/" + folder.toString(); } } }
protected void openFolder() throws MessagingException { if (this.folder == null) { openSession(); connectStoreIfNecessary(); this.folder = obtainFolderInstance(); } else { connectStoreIfNecessary(); } if (this.folder == null || !this.folder.exists()) { throw new IllegalStateException("no such folder [" + this.url.getFile() + "]"); } if (this.folder.isOpen()) { return; } if (this.logger.isDebugEnabled()) { this.logger.debug("opening folder [" + this.folder.getURLName() + "]"); } this.folder.open(this.folderOpenMode); }
log.logDebug( BaseMessages.getString( PKG, "JobGetMailsFromPOP.FolderOpened.Url", this.folder.getURLName().toString() ) ); log.logDebug( BaseMessages.getString( PKG, "JobGetMailsFromPOP.FolderOpened.Subscribed", "" + this.folder.isSubscribed() ) );
public CharSequence uri() { try { return folder.getURLName() + "#" + message.getMessageNumber(); } catch ( MessagingException e ) { throw new RuntimeException( e ); } }
public CharSequence uri() { try { return folder.getURLName() + "#" + message.getMessageNumber(); } catch ( MessagingException e ) { throw new RuntimeException( e ); } }
public CharSequence uri() { try { return folder.getURLName() + "#" + message.getMessageNumber(); } catch ( MessagingException e ) { throw new RuntimeException( e ); } }
@Override public URLName getURLName() throws RuntimeMessagingException { try { return delegate.getURLName(); } catch (MessagingException e) { throw new RuntimeMessagingException(e); } }
public CharSequence uri() { try { return folder.getURLName() + "#" + message.getMessageNumber(); } catch ( MessagingException e ) { throw new RuntimeException( e ); } }
@Override public void onError(final String errmsg, final Folder folder, final Exception e) { logger.error("Folder " + folder.getFullName() + " throws an error:" + errmsg + e, e); try { client.prepareIndex(index(), RIVERSTATE_TYPE, ERRORS_ID + "_" + folder.getURLName().toString().hashCode()) .setSource(mapper.writeValueAsString(new IndexableError(null, folder.getURLName().toString(), errmsg + e))).execute() .actionGet(); } catch (final Exception ex) { logger.error("Unable to log an error because of " + ex + errmsg, e); } }
@Override public void clearDataForFolder(final Folder folder) throws IOException, MessagingException { logger.info("Delete locally all messages for folder {} in {}/{}",folder.getURLName().toString(), index, type); createIndexIfNotExists(); client.admin().indices().refresh(new RefreshRequest()).actionGet(); DeleteByQuery.deleteByQuery(client, index, new String[]{type}, QueryBuilders.termQuery("folderUri", folder.getURLName().toString())); }
/** * Return the fully qualified name of the folder, for use in log messages. * Essentially just the getURLName method, but ignoring the * MessagingException that can never happen. */ private static String folderName(Folder folder) { try { return folder.getURLName().toString(); } catch (MessagingException mex) { // can't happen return folder.getStore().toString() + "/" + folder.toString(); } } }
/** * Return the fully qualified name of the folder, for use in log messages. * Essentially just the getURLName method, but ignoring the * MessagingException that can never happen. */ private static String folderName(Folder folder) { try { return folder.getURLName().toString(); } catch (MessagingException mex) { // can't happen return folder.getStore().toString() + "/" + folder.toString(); } } }
/** * Return the fully qualified name of the folder, for use in log messages. * Essentially just the getURLName method, but ignoring the * MessagingException that can never happen. */ private static String folderName(Folder folder) { try { return folder.getURLName().toString(); } catch (MessagingException mex) { // can't happen return folder.getStore().toString() + "/" + folder.toString(); } } }
/** * Return the fully qualified name of the folder, for use in log messages. * Essentially just the getURLName method, but ignoring the * MessagingException that can never happen. */ private static String folderName(Folder folder) { try { return folder.getURLName().toString(); } catch (MessagingException mex) { // can't happen return folder.getStore().toString() + "/" + folder.toString(); } } }
protected void openFolder() throws MessagingException { if (this.folder == null) { openSession(); connectStoreIfNecessary(); this.folder = obtainFolderInstance(); } else { connectStoreIfNecessary(); } if (this.folder == null || !this.folder.exists()) { throw new IllegalStateException("no such folder [" + this.url.getFile() + "]"); } if (this.folder.isOpen()) { return; } if (this.logger.isDebugEnabled()) { this.logger.debug("opening folder [" + this.folder.getURLName() + "]"); } this.folder.open(this.folderOpenMode); }
@SuppressWarnings("rawtypes") @Override public void onMessageDeletes(final Set msgs, final Folder folder) throws IOException, MessagingException { if (msgs.size() == 0) { return; } createIndexIfNotExists(); client.admin().indices().refresh(new RefreshRequest()).actionGet(); logger.info("Will delete " + msgs.size() + " messages locally for folder " + folder.getURLName().toString()); final BoolQueryBuilder query = new BoolQueryBuilder(); if (folder instanceof POP3Folder) { query.must(QueryBuilders.termsQuery("popId", msgs)); } else { query.must(QueryBuilders.termsQuery("uid", msgs)); } query.must(QueryBuilders.termQuery("folderUri", folder.getURLName().toString())); DeleteByQuery.deleteByQuery(client, index, new String[]{type}, query); }
@Override public synchronized State getRiverState(final Folder folder) throws MessagingException { try { waitForCluster(); if (client.admin().indices().prepareExists(index()).execute().actionGet().isExists()) { final GetResponse response = client .prepareGet(index(), RIVERSTATE_TYPE, FOLDERSTATE_ID + "_" + folder.getURLName().toString().hashCode()).execute() .get(); if (!response.isSourceEmpty()) { return mapper.readValue(response.getSourceAsString(), new TypeReference<State>() { }); } } } catch (final Exception ex) { throw new MessagingException("Unable to get river state", ex); } final State rs = new State(); rs.setFolderUrl(folder.getURLName().toString()); // rs.setLastUid(1L); rs.setExists(true); return rs; }
@SuppressWarnings({ "rawtypes", "unchecked" }) @Override public Set getCurrentlyStoredMessageUids(final Folder folder) throws IOException, MessagingException { createIndexIfNotExists(); client.admin().indices().refresh(new RefreshRequest()).actionGet(); final Set uids = new HashSet(); final TermQueryBuilder b = QueryBuilders.termQuery("folderUri", folder.getURLName().toString()); logger.debug("Term query: " + b.buildAsBytes().toUtf8()); SearchResponse scrollResp = client.prepareSearch().setIndices(index).setTypes(type).setSearchType(SearchType.SCAN).setQuery(b) .setScroll(new TimeValue(1000)).setSize(1000).execute().actionGet(); while (true) { scrollResp = client.prepareSearchScroll(scrollResp.getScrollId()).setScroll(new TimeValue(1000)).execute().actionGet(); boolean hitsRead = false; for (final SearchHit hit : scrollResp.getHits()) { hitsRead = true; if (folder instanceof IMAPFolder) { uids.add(Long.parseLong(hit.getId().split("::")[0])); } else { uids.add(hit.getId().split("::")[0]); } logger.debug("Local: " + hit.getId()); } if (!hitsRead) { break; } } logger.debug("Currently locally stored messages for folder {}: {}", folder.getURLName(), uids.size()); return uids; }
toFolder = getFolder(destFolder.getName(), store); if (fromFolder.getURLName().equals(toFolder.getURLName())) { throw new GmailException("ImapGmailClient cannot move " + "GmailMessage within same folder "