[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