public boolean isAccountBeingUsed(Account account) { if (log.isDebugEnabled()) log.debug( String.format( "Checking account %s, user_id %s for last registration with location service", account.getId(), account.getUser_id())); IPeekLocationService locationService = new PeekLocationService(); Date lastUpdated = null; try { lastUpdated = locationService.getLastUpdatedTimestamp(account.getUser_id()); } catch (DALException e) { log.error(UtilsTools.getExceptionStackTrace(e)); } if (lastUpdated == null) { log.debug("Last updated value not found, so we should still check this account"); return true; } Date now = new Date(); Long interval = dayMultiplier * mailcheckDisableIntervalInHours; Long sinceLastConnection = now.getTime() - lastUpdated.getTime(); if (sinceLastConnection > interval) { if (log.isDebugEnabled()) log.debug( String.format( "Last mail check was %s hours ago, > %s hour interval , we will not check this account", sinceLastConnection / dayMultiplier, interval / dayMultiplier)); return false; } return true; }
public int handleFirstTime( Account account, FolderHelper folderHelper, int folderDepth, String messageStoreBucket, Set<String> storedMessageIds, String context, StopWatch watch) throws Exception { int newMessages = 0; Date lastMessageReceivedDate = null; log.info(String.format("handling first mailcheck for %s", context)); Folder folder; while ((folder = folderHelper.next()) != null) { String folderContext = context + " ,folderName=" + folder.getFullName(); IMAPFolder imapFolder = (IMAPFolder) folder; Collection<Integer> messages = getFirstTimeMessages(imapFolder, folderContext); if (messages.size() > 0) { storedMessageIds = new HashSet<String>(); for (Integer messageNumber : messages) { Message message = imapFolder.getMessage(messageNumber); if (lastMessageReceivedDate == null || lastMessageReceivedDate.before(message.getReceivedDate())) { lastMessageReceivedDate = message.getReceivedDate(); } String messageId = getId(account, imapFolder, message); if (processMessage( account, message, messageNumber, messageId, imapFolder, storedMessageIds, messageStoreBucket, folderContext, watch, folderHelper)) { newMessages++; } } } } updateAccount(account, null, 0, folderDepth, lastMessageReceivedDate); return newMessages; }
protected boolean areMessagesInReverseOrder(Folder inbox) throws MessagingException { try { Message msgFirst = inbox.getMessage(1); Message msgLast = inbox.getMessage(inbox.getMessageCount()); Date firstMessageDate = getDateToDetermineOrder(msgFirst); Date lastMessageDate = getDateToDetermineOrder(msgLast); return firstMessageDate != null && lastMessageDate != null && firstMessageDate.after(lastMessageDate); } catch (Exception e) { return false; } }