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-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org