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 no...@apache.org on 2010/11/16 19:07:00 UTC

svn commit: r1035719 - /james/server/trunk/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueue.java

Author: norman
Date: Tue Nov 16 18:07:00 2010
New Revision: 1035719

URL: http://svn.apache.org/viewvc?rev=1035719&view=rev
Log:
Remove ActiveMQBlobMessage payload on exception

Modified:
    james/server/trunk/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueue.java

Modified: james/server/trunk/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueue.java
URL: http://svn.apache.org/viewvc/james/server/trunk/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueue.java?rev=1035719&r1=1035718&r2=1035719&view=diff
==============================================================================
--- james/server/trunk/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueue.java (original)
+++ james/server/trunk/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueue.java Tue Nov 16 18:07:00 2010
@@ -166,7 +166,11 @@ public class ActiveMQMailQueue extends J
      */
     protected void produceMail(Session session, Map<String,Object> props, int msgPrio, Mail mail) throws JMSException, MessagingException, IOException {
         MessageProducer producer = null;
+        BlobMessage blobMessage = null;
+        boolean reuse = false;
+
         try {
+            
             // check if we should use a blob message here
             if (useBlob) { 
                 MimeMessage mm = mail.getMessage();
@@ -177,7 +181,6 @@ public class ActiveMQMailQueue extends J
                 if (wrapper instanceof MimeMessageCopyOnWriteProxy) {
                     wrapper = ((MimeMessageCopyOnWriteProxy)mm).getWrappedMessage();
                 }
-                BlobMessage blobMessage = null;
                 if (wrapper instanceof MimeMessageWrapper) {
                     URL blobUrl = (URL) mail.getAttribute(JAMES_BLOB_URL);
                     String fromQueue = (String) mail.getAttribute(JAMES_QUEUE_NAME);
@@ -189,6 +192,7 @@ public class ActiveMQMailQueue extends J
                     
                         // thats important so we don't delete the blob file after complete the processing!
                         mail.setAttribute(JAMES_REUSE_BLOB_URL, true);
+                        reuse = true;
                     
                     }
 
@@ -214,6 +218,11 @@ public class ActiveMQMailQueue extends J
             } else {
                 super.produceMail(session, props, msgPrio, mail);
             }
+        } catch (JMSException e) {
+            if (!reuse && blobMessage != null && blobMessage instanceof ActiveMQBlobMessage) {
+                ((ActiveMQBlobMessage) blobMessage).deleteFile();
+            }
+            throw e;
         } finally {
 
             try {



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