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