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;
     }
 }


Reply via email to