[Jboss-cvs] JBossAS SVN: r56333 - branches/Branch_4_0/messaging/src/main/org/jboss/mq/server

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Aug 28 07:58:09 EDT 2006


Author: adrian at jboss.org
Date: 2006-08-28 07:58:05 -0400 (Mon, 28 Aug 2006)
New Revision: 56333

Modified:
   branches/Branch_4_0/messaging/src/main/org/jboss/mq/server/BasicQueue.java
Log:
[JBAS-3573] - Error during ACK should result in NACK +
error/rollback

Modified: branches/Branch_4_0/messaging/src/main/org/jboss/mq/server/BasicQueue.java
===================================================================
--- branches/Branch_4_0/messaging/src/main/org/jboss/mq/server/BasicQueue.java	2006-08-28 11:53:30 UTC (rev 56332)
+++ branches/Branch_4_0/messaging/src/main/org/jboss/mq/server/BasicQueue.java	2006-08-28 11:58:05 UTC (rev 56333)
@@ -630,8 +630,19 @@
       }
       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