[Jboss-cvs] JBossAS SVN: r56339 - trunk/messaging/src/main/org/jboss/mq/server

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Aug 28 09:35:04 EDT 2006


Author: adrian at jboss.org
Date: 2006-08-28 09:35:02 -0400 (Mon, 28 Aug 2006)
New Revision: 56339

Modified:
   trunk/messaging/src/main/org/jboss/mq/server/BasicQueue.java
Log:
[JBAS-3573] - Error removing message during an ACK should result
in a NACK/rollback.

Modified: trunk/messaging/src/main/org/jboss/mq/server/BasicQueue.java
===================================================================
--- trunk/messaging/src/main/org/jboss/mq/server/BasicQueue.java	2006-08-28 13:28:42 UTC (rev 56338)
+++ trunk/messaging/src/main/org/jboss/mq/server/BasicQueue.java	2006-08-28 13:35:02 UTC (rev 56339)
@@ -630,9 +630,20 @@
       }
       else
       {
-         if (m.isPersistent())
-            server.getPersistenceManager().remove(m, txId);
-
+         try
+         {
+            if (m.isPersistent())
+               server.getPersistenceManager().remove(m, txId);
+         }
+         catch (Throwable t)
+         {
+            // Something is wrong with the persistence manager,
+            // force a NACK with a rollback/error
+            Runnable task = new RestoreMessageTask(m);
+            server.getPersistenceManager().getTxManager().addPostCommitTask(txId, task);
+            SpyJMSException.rethrowAsJMSException("Error during ACK ref=" + m, t);
+         }
+          
          performOrPerpareAcknowledgeMessage(m, txId);
       }
 




More information about the jboss-cvs-commits mailing list