You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by no...@apache.org on 2009/09/01 18:07:48 UTC

svn commit: r810106 - in /labs/hupa/server/src/main/java/org/apache/hupa/server/handler: DeleteMessageHandler.java MoveMessageHandler.java

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: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org