You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2010/05/15 15:44:34 UTC

svn commit: r944645 - /axis/axis2/java/transports/trunk/modules/mail/src/test/java/org/apache/axis2/transport/mail/MailRequestResponseClient.java

Author: veithen
Date: Sat May 15 13:44:34 2010
New Revision: 944645

URL: http://svn.apache.org/viewvc?rev=944645&view=rev
Log:
Cleaned up some old code in the mail transport tests and make sure that mail folders are always properly closed.

Modified:
    axis/axis2/java/transports/trunk/modules/mail/src/test/java/org/apache/axis2/transport/mail/MailRequestResponseClient.java

Modified: axis/axis2/java/transports/trunk/modules/mail/src/test/java/org/apache/axis2/transport/mail/MailRequestResponseClient.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/mail/src/test/java/org/apache/axis2/transport/mail/MailRequestResponseClient.java?rev=944645&r1=944644&r2=944645&view=diff
==============================================================================
--- axis/axis2/java/transports/trunk/modules/mail/src/test/java/org/apache/axis2/transport/mail/MailRequestResponseClient.java (original)
+++ axis/axis2/java/transports/trunk/modules/mail/src/test/java/org/apache/axis2/transport/mail/MailRequestResponseClient.java Sat May 15 13:44:34 2010
@@ -30,6 +30,7 @@ import javax.mail.Session;
 import javax.mail.Store;
 import javax.mail.internet.ContentType;
 import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
 
 import junit.framework.Assert;
 
@@ -103,29 +104,31 @@ public class MailRequestResponseClient e
         return reply;
     }
 
-    private Message getMessage(String requestMsgId) {
-        try {
-            Folder folder = store.getFolder(MailConstants.DEFAULT_FOLDER);
-            folder.open(Folder.READ_WRITE);
-            Message[] msgs = folder.getMessages();
-            log.debug(msgs.length + " replies in reply mailbox");
-            for (Message m:msgs) {
-                String[] inReplyTo = m.getHeader(MailConstants.MAIL_HEADER_IN_REPLY_TO);
-                log.debug("Got reply to : " + Arrays.toString(inReplyTo));
-                if (inReplyTo != null && inReplyTo.length > 0) {
-                    for (int j=0; j<inReplyTo.length; j++) {
-                        if (requestMsgId.equals(inReplyTo[j])) {
-                            m.setFlag(Flags.Flag.DELETED, true);
-                            return m;
-                        }
+    private Message getMessage(String requestMsgId) throws Exception {
+        MimeMessage response = null;
+        Folder folder = store.getFolder(MailConstants.DEFAULT_FOLDER);
+        folder.open(Folder.READ_WRITE);
+        Message[] msgs = folder.getMessages();
+        log.debug(msgs.length + " messages in mailbox");
+        loop: for (Message m : msgs) {
+            MimeMessage mimeMessage = (MimeMessage)m;
+            String[] inReplyTo = mimeMessage.getHeader(MailConstants.MAIL_HEADER_IN_REPLY_TO);
+            log.debug("Found message " + mimeMessage.getMessageID() + " in reply to " + Arrays.toString(inReplyTo));
+            if (inReplyTo != null && inReplyTo.length > 0) {
+                for (int j=0; j<inReplyTo.length; j++) {
+                    if (requestMsgId.equals(inReplyTo[j])) {
+                        log.debug("Identified message " + mimeMessage.getMessageID() + " as the response to " + requestMsgId + "; retrieving it from the store");
+                        // We need to create a copy so that we can delete the original and close the folder
+                        response = new MimeMessage(mimeMessage);
+                        log.debug("Flagging message " + mimeMessage.getMessageID() + " for deletion");
+                        mimeMessage.setFlag(Flags.Flag.DELETED, true);
+                        break loop;
                     }
                 }
-                m.setFlag(Flags.Flag.DELETED, true);
             }
-            folder.close(true);
-        } catch (Exception e) {
-            e.printStackTrace();
+            log.warn("Don't know what to do with message " + mimeMessage.getMessageID() + "; skipping");
         }
-        return null;
+        folder.close(true);
+        return response;
     }
 }