Author: norman
Date: Tue Sep 1 16:07:48 2009
New Revision: 810106
URL: http://svn.apache.org/viewvc?rev=810106&view=rev
Log:
use UID expunge if possible. If this is not the case use "normal" expunge
Check if we can move deleted messages to the trash folder
Modified:
labs/hupa/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageHandler.java
labs/hupa/server/src/main/java/org/apache/hupa/server/handler/MoveMessageHandler.java
Modified:
labs/hupa/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageHandler.java
URL:
http://svn.apache.org/viewvc/labs/hupa/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageHandler.java?rev=810106&r1=810105&r2=810106&view=diff
==============================================================================
---
labs/hupa/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageHandler.java
(original)
+++
labs/hupa/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageHandler.java
Tue Sep 1 16:07:48 2009
@@ -24,6 +24,7 @@
import javax.mail.Flags;
import javax.mail.Message;
+import javax.mail.MessagingException;
import javax.servlet.http.HttpSession;
import net.customware.gwt.dispatch.server.ExecutionContext;
@@ -83,17 +84,29 @@
if
(folder.getFullName().equalsIgnoreCase(IMAPFolder.DEFAULT_TRASH) == false) {
com.sun.mail.imap.IMAPFolder trashFolder =
(com.sun.mail.imap.IMAPFolder) store.getFolder(IMAPFolder.DEFAULT_TRASH);
+ boolean trashFound = false;
// if the trash folder does not exist we create
it
if (trashFolder.exists() == false) {
-
trashFolder.create(com.sun.mail.imap.IMAPFolder.READ_WRITE);
+ trashFound =
trashFolder.create(com.sun.mail.imap.IMAPFolder.READ_WRITE);
+ } else {
+ trashFound = true;
+ }
+
+ // Check if we are able to copy the messages to
the trash folder
+ if (trashFound) {
+ // copy the messages to the trashfolder
+ f.copyMessages(mArray,trashFolder);
}
- // copy the messages to the trashfolder
- f.copyMessages(mArray,trashFolder);
}
// delete the messages from the folder
f.setFlags(mArray, new Flags(Flags.Flag.DELETED), true);
- f.expunge(mArray);
- f.close(false);
+ try {
+ f.expunge(mArray);
+ f.close(false);
+ } catch (MessagingException e) {
+ // prolly UID expunge is not supported
+ f.close(true);
+ }
} catch (Exception e) {
logger.error("Error while deleting messages with uids
"+ action.getMessageUids() + " for user " + user + " in folder" +
action.getFolder(),e);
throw new ActionException("Error while deleting
messages",e);
Modified:
labs/hupa/server/src/main/java/org/apache/hupa/server/handler/MoveMessageHandler.java
URL:
http://svn.apache.org/viewvc/labs/hupa/server/src/main/java/org/apache/hupa/server/handler/MoveMessageHandler.java?rev=810106&r1=810105&r2=810106&view=diff
==============================================================================
---
labs/hupa/server/src/main/java/org/apache/hupa/server/handler/MoveMessageHandler.java
(original)
+++
labs/hupa/server/src/main/java/org/apache/hupa/server/handler/MoveMessageHandler.java
Tue Sep 1 16:07:48 2009
@@ -68,11 +68,16 @@
Message[] mArray = new Message[] {m};
folder.copyMessages(mArray,
store.getFolder(action.getNewFolder().getFullName()));
folder.setFlags(mArray, new Flags(Flags.Flag.DELETED),
true);
- folder.expunge(mArray);
- folder.close(true);
+ try {
+ folder.expunge(mArray);
+ folder.close(false);
+ } catch (MessagingException e) {
+ // prolly UID expunge is not supported
+ folder.close(true);
+ }
return new MoveMessageResult();
} catch (MessagingException e) {
- logger.error("Error while moving message " +
action.getMessageUid() + " from folder" + action.getOldFolder() + " to " +
action.getNewFolder(),e);
+ logger.error("Error while moving message " +
action.getMessageUid() + " from folder " + action.getOldFolder() + " to " +
action.getNewFolder(),e);
throw new ActionException(e);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]