Author: norman
Date: Sun Sep 19 18:57:38 2010
New Revision: 998716

URL: http://svn.apache.org/viewvc?rev=998716&view=rev
Log:
Delete the BlobMessage file after successfully complete the dequeue operation

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

Modified: 
james/server/trunk/spoolmanager/src/main/java/org/apache/james/queue/ActiveMQMailQueue.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/spoolmanager/src/main/java/org/apache/james/queue/ActiveMQMailQueue.java?rev=998716&r1=998715&r2=998716&view=diff
==============================================================================
--- 
james/server/trunk/spoolmanager/src/main/java/org/apache/james/queue/ActiveMQMailQueue.java
 (original)
+++ 
james/server/trunk/spoolmanager/src/main/java/org/apache/james/queue/ActiveMQMailQueue.java
 Sun Sep 19 18:57:38 2010
@@ -43,6 +43,7 @@ import javax.mail.internet.MimeMessage;
 
 import org.apache.activemq.ActiveMQSession;
 import org.apache.activemq.BlobMessage;
+import org.apache.activemq.command.ActiveMQBlobMessage;
 import org.apache.activemq.pool.PooledSession;
 import org.apache.commons.logging.Log;
 import org.apache.james.core.MailImpl;
@@ -127,6 +128,7 @@ public class ActiveMQMailQueue implement
     public void deQueue(DequeueOperation operation) throws MailboxException, 
MessagingException {   
         Connection connection = null;
         Session session = null;
+        Message message;
         try {
             connection = connectionFactory.createConnection();
             connection.start();
@@ -134,10 +136,19 @@ public class ActiveMQMailQueue implement
             session = connection.createSession(true, 
Session.SESSION_TRANSACTED);
             Queue queue = session.createQueue(queuename);
             MessageConsumer consumer = session.createConsumer(queue);
-            
-            Mail mail = createMail(consumer.receive());
+            message = consumer.receive();
+            Mail mail = createMail(message);
             operation.process(mail);
             session.commit();
+            if (message instanceof ActiveMQBlobMessage) {
+                
+                // delete the file
+                try {
+                    ((ActiveMQBlobMessage) message).deleteFile();
+                } catch (IOException e) {
+                    logger.info("Unable to delete blob message file for mail " 
+ mail.getName());
+                }
+            }
         } catch (JMSException e) {
             throw new MailboxException("Unable to dequeue next message", e);
         } catch (MessagingException e) {



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

Reply via email to