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]