Author: norman
Date: Tue Mar 30 06:55:27 2010
New Revision: 929017

URL: http://svn.apache.org/viewvc?rev=929017&view=rev
Log:
Get sure we dispose the mail even on exception

Modified:
    
james/server/trunk/core-api/src/main/java/org/apache/james/lifecycle/LifecycleUtil.java
    
james/server/trunk/spoolmanager/src/main/java/org/apache/james/AbstractMailServer.java

Modified: 
james/server/trunk/core-api/src/main/java/org/apache/james/lifecycle/LifecycleUtil.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-api/src/main/java/org/apache/james/lifecycle/LifecycleUtil.java?rev=929017&r1=929016&r2=929017&view=diff
==============================================================================
--- 
james/server/trunk/core-api/src/main/java/org/apache/james/lifecycle/LifecycleUtil.java
 (original)
+++ 
james/server/trunk/core-api/src/main/java/org/apache/james/lifecycle/LifecycleUtil.java
 Tue Mar 30 06:55:27 2010
@@ -22,7 +22,7 @@ package org.apache.james.lifecycle;
 public class LifecycleUtil {
 
     public static void dispose(Object obj) {
-        if (obj instanceof Disposable) {
+        if (obj instanceof Disposable && obj != null) {
             ((Disposable) obj).dispose();
         }
     }

Modified: 
james/server/trunk/spoolmanager/src/main/java/org/apache/james/AbstractMailServer.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/spoolmanager/src/main/java/org/apache/james/AbstractMailServer.java?rev=929017&r1=929016&r2=929017&view=diff
==============================================================================
--- 
james/server/trunk/spoolmanager/src/main/java/org/apache/james/AbstractMailServer.java
 (original)
+++ 
james/server/trunk/spoolmanager/src/main/java/org/apache/james/AbstractMailServer.java
 Tue Mar 30 06:55:27 2010
@@ -298,15 +298,17 @@ public abstract class AbstractMailServer
      * @see org.apache.james.services.MailServer#sendMail(Mail)
      */
     public void sendMail(Mail mail) throws MessagingException {
+        Mail newMail = null;
         try {
-               Mail newMail = new InMemoryMail(mail);
+               newMail = new InMemoryMail(mail);
             producerTemplate.sendBody(getToUri(mail), ExchangePattern.InOnly, 
newMail);
-            
-            LifecycleUtil.dispose(mail);
-            
+                        
         } catch (Exception e) {
             logger.error("Error storing message: " + e.getMessage(),e);
             throw new MessagingException("Exception spooling message: " + 
e.getMessage(), e);
+        } finally {
+            LifecycleUtil.dispose(newMail);
+            LifecycleUtil.dispose(mail);
         }
         if (logger.isDebugEnabled()) {
             StringBuffer logBuffer =



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to