Author: bago
Date: Fri Jun 16 09:55:48 2006
New Revision: 414860
URL: http://svn.apache.org/viewvc?rev=414860&view=rev
Log:
Original headers were lost sometimes (Fix for JAMES-538)
Modified:
james/server/trunk/src/java/org/apache/james/core/MimeMessageWrapper.java
james/server/trunk/src/test/org/apache/james/core/MimeMessageTest.java
Modified:
james/server/trunk/src/java/org/apache/james/core/MimeMessageWrapper.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/core/MimeMessageWrapper.java?rev=414860&r1=414859&r2=414860&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/core/MimeMessageWrapper.java
(original)
+++ james/server/trunk/src/java/org/apache/james/core/MimeMessageWrapper.java
Fri Jun 16 09:55:48 2006
@@ -78,6 +78,13 @@
*/
private InputStream sourceIn;
+ private MimeMessageWrapper(Session session) throws MessagingException {
+ super(session);
+ this.headers = null;
+ this.modified = false;
+ this.headersModified = false;
+ this.bodyModified = false;
+ }
/**
* A constructor that instantiates a MimeMessageWrapper based on
@@ -87,11 +94,7 @@
* @throws MessagingException
*/
public MimeMessageWrapper(Session session, MimeMessageSource source)
throws MessagingException {
- super(session);
- this.headers = null;
- this.modified = false;
- this.headersModified = false;
- this.bodyModified = false;
+ this(session);
this.source = source;
}
@@ -108,7 +111,7 @@
}
public MimeMessageWrapper(MimeMessage original) throws MessagingException {
- super(Session.getDefaultInstance(System.getProperties()));
+ this(Session.getDefaultInstance(System.getProperties()));
flags = original.getFlags();
// if the original is an unmodified MimeMessageWrapped we clone the
headers and
Modified: james/server/trunk/src/test/org/apache/james/core/MimeMessageTest.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/core/MimeMessageTest.java?rev=414860&r1=414859&r2=414860&view=diff
==============================================================================
--- james/server/trunk/src/test/org/apache/james/core/MimeMessageTest.java
(original)
+++ james/server/trunk/src/test/org/apache/james/core/MimeMessageTest.java Fri
Jun 16 09:55:48 2006
@@ -55,6 +55,10 @@
+"test body";
}
+ protected String getSimpleMessageCleanedSourceHeaderExpected() throws
Exception {
+ return "X-Test: foo\r\n"+getSimpleMessageCleanedSource();
+ }
+
/*
* Class under test for String getSubject()
*/
@@ -317,8 +321,9 @@
MimeMessage mm = new MimeMessageCopyOnWriteProxy(mmorig);
MimeMessage mm2 = new MimeMessageCopyOnWriteProxy(mm);
-
+
mm2.setHeader("Subject", "Modified");
+
ContainerUtil.dispose(mm2);
System.gc();
Thread.sleep(200);
@@ -356,5 +361,25 @@
ContainerUtil.dispose(mm2);
ContainerUtil.dispose(mmorig);
}
+
+
+ /**
+ * This test throw a NullPointerException when the original message was
created by
+ * a MimeMessageInputStreamSource.
+ */
+ public void testMessageCloningViaCoWSubjectLost() throws Exception {
+ MimeMessage mmorig = getSimpleMessage();
+
+ MimeMessage mm = new MimeMessageCopyOnWriteProxy(mmorig);
+
+ mm.setHeader("X-Test", "foo");
+ mm.saveChanges();
+
+
assertEquals(getSimpleMessageCleanedSourceHeaderExpected(),getCleanedMessageSource(mm));
+
+ ContainerUtil.dispose(mm);
+ ContainerUtil.dispose(mmorig);
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]