You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ba...@apache.org on 2006/09/09 14:23:03 UTC

svn commit: r441785 - in /james/server/trunk/src: java/org/apache/james/core/ java/org/apache/james/pop3server/ test/org/apache/james/core/ test/org/apache/james/mailrepository/ test/org/apache/james/pop3server/ test/org/apache/james/smtpserver/ test/o...

Author: bago
Date: Sat Sep  9 05:23:02 2006
New Revision: 441785

URL: http://svn.apache.org/viewvc?view=rev&rev=441785
Log:
First pass for JAMES-611:

Removed finalizers from MimeMessageCopyOnWriteProxy and MimeMessageInputStreamSource: the finalizers were simple calls to dispose(), nothing more.

Fixed one MailImpl constructor to handle exceptions during the construction and related resource disposal: we should review every other constructor (this one was leaking on MessageSizeException).

Added a check in MimeMessageInputStreamSource to remove the just created file if the input stream throw an IOError (was leaking on MessageSizeException)

Added a check in DeleCmdHandler to make sure we dispose the loaded mail when replacing it with the DELETED object (must be reviewed: maybe it would be better to dispose it when we close the connection and delete the messages from the repository).

POP3Handler: added a loop over backupUserMailbox when resetting the handler to make sure objects are disposed (not sure this is the right thing to do)

Updated a lot of tests to make sure they dispose messages/mails they create.

Modified:
    james/server/trunk/src/java/org/apache/james/core/MailImpl.java
    james/server/trunk/src/java/org/apache/james/core/MimeMessageCopyOnWriteProxy.java
    james/server/trunk/src/java/org/apache/james/core/MimeMessageInputStreamSource.java
    james/server/trunk/src/java/org/apache/james/pop3server/DeleCmdHandler.java
    james/server/trunk/src/java/org/apache/james/pop3server/POP3Handler.java
    james/server/trunk/src/test/org/apache/james/core/MimeMessageCopyOnWriteProxyTest.java
    james/server/trunk/src/test/org/apache/james/core/MimeMessageTest.java
    james/server/trunk/src/test/org/apache/james/core/MimeMessageWrapperTest.java
    james/server/trunk/src/test/org/apache/james/mailrepository/AvalonMailRepositoryTest.java
    james/server/trunk/src/test/org/apache/james/pop3server/POP3ServerTest.java
    james/server/trunk/src/test/org/apache/james/smtpserver/SMTPServerTest.java
    james/server/trunk/src/test/org/apache/james/test/mock/james/InMemorySpoolRepository.java
    james/server/trunk/src/test/org/apache/james/transport/LinearProcessorTest.java

Modified: james/server/trunk/src/java/org/apache/james/core/MailImpl.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/core/MailImpl.java?view=diff&rev=441785&r1=441784&r2=441785
==============================================================================
--- james/server/trunk/src/java/org/apache/james/core/MailImpl.java (original)
+++ james/server/trunk/src/java/org/apache/james/core/MailImpl.java Sat Sep  9 05:23:02 2006
@@ -181,7 +181,14 @@
         throws MessagingException {
         this(name, sender, recipients);
         MimeMessageSource source = new MimeMessageInputStreamSource(name, messageIn);
-        this.setMessage(new MimeMessageCopyOnWriteProxy(source));
+        // if MimeMessageCopyOnWriteProxy throws an error in the constructor we
+        // have to manually care disposing our source.
+        try {
+            this.setMessage(new MimeMessageCopyOnWriteProxy(source));
+        } catch (MessagingException e) {
+            ContainerUtil.dispose(source);
+            throw e;
+        }
     }
 
     /**

Modified: james/server/trunk/src/java/org/apache/james/core/MimeMessageCopyOnWriteProxy.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/core/MimeMessageCopyOnWriteProxy.java?view=diff&rev=441785&r1=441784&r2=441785
==============================================================================
--- james/server/trunk/src/java/org/apache/james/core/MimeMessageCopyOnWriteProxy.java (original)
+++ james/server/trunk/src/java/org/apache/james/core/MimeMessageCopyOnWriteProxy.java Sat Sep  9 05:23:02 2006
@@ -71,10 +71,24 @@
         }
 
         protected synchronized void incrementReferenceCount() {
+            /* Used to track references while debugging
+            try {
+                throw new Exception("incrementReferenceCount: "+(wrapped != null ? System.identityHashCode(wrapped)+"" : "null")+" ["+referenceCount+"]");
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            */
             referenceCount++;
         }
 
         protected synchronized void decrementReferenceCount() {
+            /* Used to track references while debugging
+            try {
+                throw new Exception("decrementReferenceCount: "+(wrapped != null ? System.identityHashCode(wrapped)+"" : "null")+" ["+referenceCount+"]");
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            */
             referenceCount--;
             if (referenceCount<=0) {
                 ContainerUtil.dispose(wrapped);
@@ -730,14 +744,6 @@
      */
     public void setFlag(Flag arg0, boolean arg1) throws MessagingException {
         getWrappedMessageForWriting().setFlag(arg0, arg1);
-    }
-
-    /**
-     * @see java.lang.Object#finalize()
-     */
-    protected void finalize() throws Throwable {
-        dispose();
-        super.finalize();
     }
 
     /**

Modified: james/server/trunk/src/java/org/apache/james/core/MimeMessageInputStreamSource.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/core/MimeMessageInputStreamSource.java?view=diff&rev=441785&r1=441784&r2=441785
==============================================================================
--- james/server/trunk/src/java/org/apache/james/core/MimeMessageInputStreamSource.java (original)
+++ james/server/trunk/src/java/org/apache/james/core/MimeMessageInputStreamSource.java Sat Sep  9 05:23:02 2006
@@ -101,6 +101,12 @@
             } catch (IOException ioe) {
                 // Ignored - logging unavailable to log this non-fatal error.
             }
+            
+            // if sourceId is null while file is not null then we had
+            // an IOxception and we have to clean the file.
+            if (sourceId == null && file != null) {
+                file.delete();
+            }
         }
     }
 
@@ -146,18 +152,5 @@
         }
         file = null;
     }
-
-    /**
-     * <p>Finalizer that closes and deletes the temp file.  Very bad.</p>
-     * We're leaving this in temporarily, while also establishing a more
-     * formal mechanism for cleanup through use of the dispose() method.
-     * @throws Throwable 
-     *
-     */
-    public void finalize() throws Throwable {
-        dispose();
-        super.finalize();
-    }
-    
 
 }

Modified: james/server/trunk/src/java/org/apache/james/pop3server/DeleCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/pop3server/DeleCmdHandler.java?view=diff&rev=441785&r1=441784&r2=441785
==============================================================================
--- james/server/trunk/src/java/org/apache/james/pop3server/DeleCmdHandler.java (original)
+++ james/server/trunk/src/java/org/apache/james/pop3server/DeleCmdHandler.java Sat Sep  9 05:23:02 2006
@@ -21,6 +21,7 @@
 
 package org.apache.james.pop3server;
 
+import org.apache.avalon.framework.container.ContainerUtil;
 import org.apache.mailet.Mail;
 
 /**
@@ -67,6 +68,9 @@
                     session.writeResponse(responseString);
                 } else {
                     session.getUserMailbox().set(num, POP3Handler.DELETED);
+                    // we are replacing our reference with "DELETED", so we have
+                    // to dispose the no-more-referenced mail object.
+                    ContainerUtil.dispose(mc);
                     session.writeResponse(POP3Handler.OK_RESPONSE + " Message deleted");
                 }
             } catch (IndexOutOfBoundsException iob) {

Modified: james/server/trunk/src/java/org/apache/james/pop3server/POP3Handler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/pop3server/POP3Handler.java?view=diff&rev=441785&r1=441784&r2=441785
==============================================================================
--- james/server/trunk/src/java/org/apache/james/pop3server/POP3Handler.java (original)
+++ james/server/trunk/src/java/org/apache/james/pop3server/POP3Handler.java Sat Sep  9 05:23:02 2006
@@ -295,6 +295,10 @@
         }
 
         if (backupUserMailbox != null) {
+            Iterator i = backupUserMailbox.iterator();
+            while (i.hasNext()) {
+                ContainerUtil.dispose(i.next());
+            }
             backupUserMailbox.clear();
             backupUserMailbox = null;
         }

Modified: james/server/trunk/src/test/org/apache/james/core/MimeMessageCopyOnWriteProxyTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/core/MimeMessageCopyOnWriteProxyTest.java?view=diff&rev=441785&r1=441784&r2=441785
==============================================================================
--- james/server/trunk/src/test/org/apache/james/core/MimeMessageCopyOnWriteProxyTest.java (original)
+++ james/server/trunk/src/test/org/apache/james/core/MimeMessageCopyOnWriteProxyTest.java Sat Sep  9 05:23:02 2006
@@ -201,7 +201,7 @@
                                 ("Return-path: return@test.com\r\n"+
                                  "Content-Transfer-Encoding: plain\r\n"+
                                  "Subject: test\r\n\r\n"+
-                                 "Body Text\r\n").getBytes())));
+                                 "Body Text testNPE1\r\n").getBytes())));
         
         MimeMessageCopyOnWriteProxy mw2 = new MimeMessageCopyOnWriteProxy(mw);
         ContainerUtil.dispose(mw2);
@@ -235,7 +235,7 @@
             fail("Exception while writing the message to output");
         }
         
-        ContainerUtil.dispose(mmorig);
+        ContainerUtil.dispose(mm);
     }
 
     private static String getReferences(MimeMessage m) {

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?view=diff&rev=441785&r1=441784&r2=441785
==============================================================================
--- james/server/trunk/src/test/org/apache/james/core/MimeMessageTest.java (original)
+++ james/server/trunk/src/test/org/apache/james/core/MimeMessageTest.java Sat Sep  9 05:23:02 2006
@@ -87,7 +87,9 @@
      * Class under test for String getSubject()
      */
     public void testSimpleMessage() throws Exception {
-        assertEquals(getSimpleMessageCleanedSource(), getCleanedMessageSource(getSimpleMessage()));
+        MimeMessage m = getSimpleMessage();
+        assertEquals(getSimpleMessageCleanedSource(), getCleanedMessageSource(m));
+        ContainerUtil.dispose(m);
     }
     
     
@@ -404,6 +406,7 @@
     public void testReturnPath() throws Exception {
         MimeMessage message = getSimpleMessage();
         assertNull(message.getHeader(RFC2822Headers.RETURN_PATH));
+        ContainerUtil.dispose(message);
     }
     
     public void testHeaderOrder() throws Exception {
@@ -412,6 +415,7 @@
         Enumeration h =  message.getAllHeaderLines();
         
         assertEquals(h.nextElement(),"Return-Path: <te...@test.de>");
+        ContainerUtil.dispose(message);
     }
 
 }

Modified: james/server/trunk/src/test/org/apache/james/core/MimeMessageWrapperTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/core/MimeMessageWrapperTest.java?view=diff&rev=441785&r1=441784&r2=441785
==============================================================================
--- james/server/trunk/src/test/org/apache/james/core/MimeMessageWrapperTest.java (original)
+++ james/server/trunk/src/test/org/apache/james/core/MimeMessageWrapperTest.java Sat Sep  9 05:23:02 2006
@@ -230,6 +230,7 @@
         Enumeration h =  message.getAllHeaderLines();
         assertEquals("Return-Path: <te...@test.de>",h.nextElement());
         assertFalse(h.nextElement().toString().startsWith("Return-Path:"));
+        ContainerUtil.dispose(message);
     }
     
     public void testAddReturnPathOnBadMessage() throws Exception {
@@ -242,6 +243,7 @@
         // test that return-path is the first line
         Enumeration h =  message.getAllHeaderLines();
         assertEquals("Return-Path: <te...@test.de>",h.nextElement());
+        ContainerUtil.dispose(message);
     }
 
 }

Modified: james/server/trunk/src/test/org/apache/james/mailrepository/AvalonMailRepositoryTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/mailrepository/AvalonMailRepositoryTest.java?view=diff&rev=441785&r1=441784&r2=441785
==============================================================================
--- james/server/trunk/src/test/org/apache/james/mailrepository/AvalonMailRepositoryTest.java (original)
+++ james/server/trunk/src/test/org/apache/james/mailrepository/AvalonMailRepositoryTest.java Sat Sep  9 05:23:02 2006
@@ -109,6 +109,8 @@
         ContainerUtil.dispose(m2);
         
         mr.remove("mail1");
+        
+        ContainerUtil.dispose(mimeMessage);
 
     }
 
@@ -172,6 +174,8 @@
         ContainerUtil.dispose(m2);
         
         mr.remove("mail1");
+        
+        ContainerUtil.dispose(mimeMessage);
 
     }
 

Modified: james/server/trunk/src/test/org/apache/james/pop3server/POP3ServerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/pop3server/POP3ServerTest.java?view=diff&rev=441785&r1=441784&r2=441785
==============================================================================
--- james/server/trunk/src/test/org/apache/james/pop3server/POP3ServerTest.java (original)
+++ james/server/trunk/src/test/org/apache/james/pop3server/POP3ServerTest.java Sat Sep  9 05:23:02 2006
@@ -25,8 +25,6 @@
 import org.apache.commons.net.pop3.POP3Client;
 import org.apache.commons.net.pop3.POP3MessageInfo;
 import org.apache.james.core.MailImpl;
-import org.apache.james.core.MimeMessageCopyOnWriteProxy;
-import org.apache.james.core.MimeMessageInputStreamSource;
 import org.apache.james.services.JamesConnectionManager;
 import org.apache.james.services.MailRepository;
 import org.apache.james.services.MailServer;
@@ -44,9 +42,9 @@
 import org.apache.mailet.MailAddress;
 
 import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
 import javax.mail.util.SharedByteArrayInputStream;
 
+import java.io.InputStream;
 import java.io.Reader;
 import java.util.ArrayList;
 
@@ -106,14 +104,14 @@
     }
 
     protected void tearDown() throws Exception {
-        if (testMail1 != null) testMail1.dispose();
-        if (testMail2 != null) testMail2.dispose();
         if (m_pop3Protocol != null) {
             m_pop3Protocol.sendCommand("quit");
             m_pop3Protocol.disconnect();
         }
         m_pop3Server.dispose();
         ContainerUtil.dispose(m_mailServer);
+        if (testMail1 != null) testMail1.dispose();
+        if (testMail2 != null) testMail2.dispose();
         super.tearDown();
     }
 
@@ -243,22 +241,16 @@
     private void setupTestMails(MailRepository mailRep) throws MessagingException {
         ArrayList recipients = new ArrayList();
         recipients.add(new MailAddress("recipient@test.com"));
-        MimeMessage mw = new MimeMessageCopyOnWriteProxy(
-                new MimeMessageInputStreamSource(
-                        "test",
-                        new SharedByteArrayInputStream(
+        InputStream mw = new SharedByteArrayInputStream(
                                 ("Return-path: return@test.com\r\n"+
                                  "Content-Transfer-Encoding: plain\r\n"+
                                  "Subject: test\r\n\r\n"+
-                                 "Body Text\r\n").getBytes())));
+                                 "Body Text POP3ServerTest.setupTestMails\r\n").getBytes());
         testMail1 = new MailImpl("name", new MailAddress("from@test.com"),
                         recipients, mw);
         mailRep.store(testMail1);
-        MimeMessage mw2 = new MimeMessageCopyOnWriteProxy(
-                new MimeMessageInputStreamSource(
-                        "test2",
-                        new SharedByteArrayInputStream(
-                                ("EMPTY").getBytes())));
+        InputStream mw2 = new SharedByteArrayInputStream(
+                                ("EMPTY").getBytes());
         testMail2 = new MailImpl("name2", new MailAddress("from@test.com"),
                                 recipients, mw2);
         mailRep.store(testMail2);

Modified: james/server/trunk/src/test/org/apache/james/smtpserver/SMTPServerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/smtpserver/SMTPServerTest.java?view=diff&rev=441785&r1=441784&r2=441785
==============================================================================
--- james/server/trunk/src/test/org/apache/james/smtpserver/SMTPServerTest.java (original)
+++ james/server/trunk/src/test/org/apache/james/smtpserver/SMTPServerTest.java Sat Sep  9 05:23:02 2006
@@ -286,7 +286,7 @@
         
         smtpProtocol.addRecipient("mail@localhost");
 
-        smtpProtocol.sendShortMessageData("Subject: test mail\r\n\r\nTest body\r\n.\r\n");
+        smtpProtocol.sendShortMessageData("Subject: test mail\r\n\r\nTest body testSimpleMailSendWithHELO\r\n.\r\n");
 
         smtpProtocol.quit();
         smtpProtocol.disconnect();
@@ -322,10 +322,10 @@
         smtpProtocol2.setSender(sender2);
         smtpProtocol2.addRecipient(recipient2);
 
-        smtpProtocol1.sendShortMessageData("Subject: test\r\n\r\nTest body\r\n.\r\n");
+        smtpProtocol1.sendShortMessageData("Subject: test\r\n\r\nTest body testTwoSimultaneousMails1\r\n.\r\n");
         verifyLastMail(sender1, recipient1, null);
             
-        smtpProtocol2.sendShortMessageData("Subject: test\r\n\r\nTest body\r\n.\r\n");
+        smtpProtocol2.sendShortMessageData("Subject: test\r\n\r\nTest body testTwoSimultaneousMails2\r\n.\r\n");
         verifyLastMail(sender2, recipient2, null);
 
         smtpProtocol1.quit();
@@ -353,7 +353,7 @@
         smtpProtocol1.setSender(sender1);
         smtpProtocol1.addRecipient(recipient1);
 
-        smtpProtocol1.sendShortMessageData("Subject: test\r\n\r\nTest body\r\n");
+        smtpProtocol1.sendShortMessageData("Subject: test\r\n\r\nTest body testTwoMailsInSequence1\r\n");
         verifyLastMail(sender1, recipient1, null);
             
         String sender2 = "mail_sender2@localhost";
@@ -361,7 +361,7 @@
         smtpProtocol1.setSender(sender2);
         smtpProtocol1.addRecipient(recipient2);
 
-        smtpProtocol1.sendShortMessageData("Subject: test2\r\n\r\nTest body2\r\n");
+        smtpProtocol1.sendShortMessageData("Subject: test2\r\n\r\nTest body2 testTwoMailsInSequence2\r\n");
         verifyLastMail(sender2, recipient2, null);
 
         smtpProtocol1.quit();
@@ -580,7 +580,7 @@
         smtpProtocol1.addRecipient(rcpt2);
         assertEquals("expected 452 error", 452, smtpProtocol1.getReplyCode());
         
-        smtpProtocol1.sendShortMessageData("Subject: test\r\n\r\nTest body\r\n");
+        smtpProtocol1.sendShortMessageData("Subject: test\r\n\r\nTest body testMaxRcpt1\r\n");
         
         // After the data is send the rcpt count is set back to 0.. So a new mail with rcpt should be accepted
         
@@ -588,7 +588,7 @@
  
         smtpProtocol1.addRecipient(rcpt1);
         
-        smtpProtocol1.sendShortMessageData("Subject: test\r\n\r\nTest body\r\n");
+        smtpProtocol1.sendShortMessageData("Subject: test\r\n\r\nTest body testMaxRcpt2\r\n");
         
         smtpProtocol1.quit();
         
@@ -609,7 +609,7 @@
         
         smtpProtocol1.addRecipient(rcpt1);
         
-        smtpProtocol1.sendShortMessageData("Subject: test\r\n\r\nTest body\r\n");
+        smtpProtocol1.sendShortMessageData("Subject: test\r\n\r\nTest body testMaxRcptDefault\r\n");
         
         smtpProtocol1.quit();
     }
@@ -833,7 +833,7 @@
         assertEquals("expected error: User has previously authenticated.", 503, smtpProtocol.getReplyCode());
 
         smtpProtocol.addRecipient("mail@sample.com");
-        smtpProtocol.sendShortMessageData("Subject: test\r\n\r\nTest body\r\n");
+        smtpProtocol.sendShortMessageData("Subject: test\r\n\r\nTest body testAuth\r\n");
 
         smtpProtocol.quit();
 
@@ -878,7 +878,7 @@
 
         // left out for test smtpProtocol.rcpt(new Address("mail@localhost"));
 
-        smtpProtocol.sendShortMessageData("Subject: test\r\n\r\nTest body\r\n");
+        smtpProtocol.sendShortMessageData("Subject: test\r\n\r\nTest body testNoRecepientSpecified\r\n");
         assertTrue("sending succeeded without recepient", SMTPReply.isNegativePermanent(smtpProtocol.getReplyCode()));
 
         smtpProtocol.quit();
@@ -1175,7 +1175,7 @@
         assertEquals("authenticated.. not reject", 250, smtpProtocol
                 .getReplyCode());
 
-        smtpProtocol.sendShortMessageData("Subject: test\r\n\r\nTest body\r\n");
+        smtpProtocol.sendShortMessageData("Subject: test\r\n\r\nTest body testDNSRBLNotRejectAuthUser\r\n");
 
         smtpProtocol.quit();
 
@@ -1205,7 +1205,7 @@
         assertEquals("reject", 550, smtpProtocol
                 .getReplyCode());
 
-        smtpProtocol.sendShortMessageData("Subject: test\r\n\r\nTest body\r\n");
+        smtpProtocol.sendShortMessageData("Subject: test\r\n\r\nTest body testDNSRBLRejectWorks\r\n");
 
         smtpProtocol.quit();
 

Modified: james/server/trunk/src/test/org/apache/james/test/mock/james/InMemorySpoolRepository.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/test/mock/james/InMemorySpoolRepository.java?view=diff&rev=441785&r1=441784&r2=441785
==============================================================================
--- james/server/trunk/src/test/org/apache/james/test/mock/james/InMemorySpoolRepository.java (original)
+++ james/server/trunk/src/test/org/apache/james/test/mock/james/InMemorySpoolRepository.java Sat Sep  9 05:23:02 2006
@@ -20,6 +20,8 @@
 
 package org.apache.james.test.mock.james;
 
+import org.apache.avalon.framework.activity.Disposable;
+import org.apache.avalon.framework.container.ContainerUtil;
 import org.apache.james.core.MailImpl;
 import org.apache.james.services.SpoolRepository;
 import org.apache.james.test.mock.avalon.MockLogger;
@@ -46,7 +48,7 @@
  * @version 1.0.0, 24/04/1999
  */
 public class InMemorySpoolRepository
-    implements SpoolRepository {
+    implements SpoolRepository, Disposable {
 
     /**
      * Whether 'deep debugging' is turned on.
@@ -235,7 +237,10 @@
     public void remove(String key) throws MessagingException {
         if (lock(key)) {
             try {
-                if (spool != null) spool.remove(key);
+                if (spool != null) {
+                    Object o = spool.remove(key);
+                    ContainerUtil.dispose(o);
+                }
             } finally {
                 unlock(key);
             }
@@ -419,7 +424,20 @@
     }
 
     public void clear() {
-        spool.clear();
+        if (spool != null) {
+            Iterator i = list();
+            while (i.hasNext()) {
+                String key = (String) i.next();
+                try {
+                    remove(key);
+                } catch (MessagingException e) {
+                }
+            }
+        }
+    }
+
+    public void dispose() {
+        clear();
     }
     
 }

Modified: james/server/trunk/src/test/org/apache/james/transport/LinearProcessorTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/transport/LinearProcessorTest.java?view=diff&rev=441785&r1=441784&r2=441785
==============================================================================
--- james/server/trunk/src/test/org/apache/james/transport/LinearProcessorTest.java (original)
+++ james/server/trunk/src/test/org/apache/james/transport/LinearProcessorTest.java Sat Sep  9 05:23:02 2006
@@ -62,7 +62,7 @@
 
     String sep = "\r\n\r\n";
 
-    String body = "original body\r\n.\r\n";
+    String body = "original body LinearProcessorTest\r\n.\r\n";
 
     MailetContext mockContext = new MockMailContext();
 
@@ -157,12 +157,16 @@
             linearProcessor.service(m);
             ArrayList a = checkerMailet.receivedMails;
             assertEquals(2, a.size());
-            MimeMessage m1 = ((Mail) a.get(0)).getMessage();
-            MimeMessage m2 = ((Mail) a.get(1)).getMessage();
+            Mail mail1 = ((Mail) a.get(0));
+            Mail mail2 = ((Mail) a.get(1));
+            MimeMessage m1 = mail1.getMessage();
+            MimeMessage m2 = mail2.getMessage();
             assertNotSame(m1, m2);
             assertEquals(m1.getSubject(), "new text 1");
             assertEquals(m2.getSubject(), "new text 2");
             m.dispose();
+            ContainerUtil.dispose(mail1);
+            ContainerUtil.dispose(mail2);
         } catch (MessagingException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
@@ -202,12 +206,16 @@
             linearProcessor.service(m);
             ArrayList a = checkerMailet.receivedMails;
             assertEquals(2, a.size());
-            MimeMessage m1 = ((Mail) a.get(0)).getMessage();
-            MimeMessage m2 = ((Mail) a.get(1)).getMessage();
+            Mail mail1 = ((Mail) a.get(0));
+            Mail mail2 = ((Mail) a.get(1));
+            MimeMessage m1 = mail1.getMessage();
+            MimeMessage m2 = mail2.getMessage();
             assertNotSame(m1, m2);
             assertEquals("MYSTATE", ((Mail) a.get(0)).getState());
             assertEquals("MYSTATE", ((Mail) a.get(1)).getState());
             m.dispose();
+            ContainerUtil.dispose(mail1);
+            ContainerUtil.dispose(mail2);
         } catch (MessagingException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org