Merged HEAD-BUG-FIX (5.1/Cloud) to HEAD (5.1/Cloud)

92321: Merged 5.0.N (5.0.1) to HEAD-BUG-FIX (5.1/Cloud)
      92221: Merged V4.2-BUG-FIX (4.2.5) to 5.0.N (5.0.1)
         92039: Merged V4.2.1 (4.2.1.18) to V4.2-BUG-FIX (4.2.5)
            91922: MNT-12903 : Outlook 2013: moving a file from a folder to another makes it a EML file
               - Delete delay is configurable. Logging has been added to CommandCallback


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@94866 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Alan Davis
2015-01-31 11:47:08 +00:00
parent 63d0306f84
commit a27004cb42
5 changed files with 31 additions and 3 deletions

View File

@@ -189,6 +189,9 @@
<value>Message-Id</value> <value>Message-Id</value>
</list> </list>
</property> </property>
<property name="imapServerShuffleMoveDeleteDelay">
<value>${imap.server.shuffle.move.delete.delay}</value>
</property>
</bean> </bean>
<!-- Public Imap Service --> <!-- Public Imap Service -->

View File

@@ -19,3 +19,5 @@ imap.server.imap.enabled=true
# javax.net.ssl.keyStorePassword=123456 # javax.net.ssl.keyStorePassword=123456
imap.server.imaps.enabled=false imap.server.imaps.enabled=false
imap.server.imaps.port=993 imap.server.imaps.port=993
imap.server.shuffle.move.delete.delay=10000

View File

@@ -30,6 +30,8 @@ import org.alfresco.repo.imap.exception.AlfrescoImapFolderException;
import org.alfresco.repo.transaction.RetryingTransactionHelper; import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback; import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.service.ServiceRegistry; import org.alfresco.service.ServiceRegistry;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.icegreen.greenmail.foedus.util.MsgRangeFilter; import com.icegreen.greenmail.foedus.util.MsgRangeFilter;
import com.icegreen.greenmail.mail.MovingMessage; import com.icegreen.greenmail.mail.MovingMessage;
@@ -48,6 +50,8 @@ public abstract class AbstractImapFolder implements MailFolder
{ {
private List<FolderListener> listeners = new LinkedList<FolderListener>(); private List<FolderListener> listeners = new LinkedList<FolderListener>();
protected Log logger = LogFactory.getLog(getClass());
protected ServiceRegistry serviceRegistry; protected ServiceRegistry serviceRegistry;
protected static int MAX_RETRIES = 20; protected static int MAX_RETRIES = 20;
@@ -453,6 +457,12 @@ public abstract class AbstractImapFolder implements MailFolder
catch (Exception e) catch (Exception e)
{ {
Throwable cause = e.getCause(); Throwable cause = e.getCause();
if (logger.isDebugEnabled())
{
logger.debug("Exception is thrown : " + e + "\nCause : " + cause);
}
String message; String message;
if (cause != null) if (cause != null)
{ {

View File

@@ -75,8 +75,6 @@ public class AlfrescoImapFolder extends AbstractImapFolder implements Serializab
{ {
private static final long serialVersionUID = -7223111284066976111L; private static final long serialVersionUID = -7223111284066976111L;
private static Log logger = LogFactory.getLog(AlfrescoImapFolder.class);
/** /**
* Reference to the {@link FileInfo} object representing the folder. * Reference to the {@link FileInfo} object representing the folder.
*/ */

View File

@@ -165,6 +165,7 @@ public class ImapServiceImpl implements ImapService, OnRestoreNodePolicy, OnCrea
private final static Map<QName, Flags.Flag> qNameToFlag; private final static Map<QName, Flags.Flag> qNameToFlag;
private final static Map<Flags.Flag, QName> flagToQname; private final static Map<Flags.Flag, QName> flagToQname;
private long imapServerShuffleMoveDeleteDelay = 5000L;
private static final Timer deleteDelayTimer = new Timer(); private static final Timer deleteDelayTimer = new Timer();
private boolean imapServerEnabled = false; private boolean imapServerEnabled = false;
@@ -353,6 +354,11 @@ public class ImapServiceImpl implements ImapService, OnRestoreNodePolicy, OnCrea
this.messageHeadersToPersist = headers; this.messageHeadersToPersist = headers;
} }
public void setImapServerShuffleMoveDeleteDelay(long imapServerShuffleMoveDeleteDelay)
{
this.imapServerShuffleMoveDeleteDelay = imapServerShuffleMoveDeleteDelay;
}
public boolean getImapServerEnabled() public boolean getImapServerEnabled()
{ {
return this.imapServerEnabled; return this.imapServerEnabled;
@@ -605,6 +611,11 @@ public class ImapServiceImpl implements ImapService, OnRestoreNodePolicy, OnCrea
// This is the transaction-aware service // This is the transaction-aware service
fileFolderService.delete(nodeRef); fileFolderService.delete(nodeRef);
if (logger.isDebugEnabled())
{
logger.debug("Node has been async deleted " + nodeRef);
}
return null; return null;
} }
}); });
@@ -623,7 +634,11 @@ public class ImapServiceImpl implements ImapService, OnRestoreNodePolicy, OnCrea
} }
}; };
// Schedule a real delete 5 seconds after the current time // Schedule a real delete 5 seconds after the current time
deleteDelayTimer.schedule(deleteDelayTask, 5000L); if (logger.isDebugEnabled())
{
logger.debug("Delete timer is scheduled for " + nodeRef);
}
deleteDelayTimer.schedule(deleteDelayTask, imapServerShuffleMoveDeleteDelay);
} }
} }