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