You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by ga...@apache.org on 2007/04/17 13:18:04 UTC
svn commit: r529568 -
/webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
Author: gatfora
Date: Tue Apr 17 04:18:03 2007
New Revision: 529568
URL: http://svn.apache.org/viewvc?view=rev&rev=529568
Log:
Commit transaction after processing each part of the message inside the SandeshaInHandler. This fixes both a deadlock with the SenderWorker with ordering of RMS/RMDBeans
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java?view=diff&rev=529568&r1=529567&r2=529568
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java Tue Apr 17 04:18:03 2007
@@ -114,11 +114,19 @@
// validating the message
MessageValidator.validateMessage(rmMsgCtx, storageManager);
+
+ // commit the current transaction
+ transaction.commit();
+ transaction = storageManager.getTransaction();
// Process Ack headers in the message
AcknowledgementProcessor ackProcessor = new AcknowledgementProcessor();
ackProcessor.processAckHeaders(rmMsgCtx);
+ // commit the current transaction
+ transaction.commit();
+ transaction = storageManager.getTransaction();
+
// Process Ack Request headers in the message
AckRequestedProcessor reqProcessor = new AckRequestedProcessor();
if(reqProcessor.processAckRequestedHeaders(rmMsgCtx)){
@@ -128,6 +136,10 @@
// Process MessagePending headers
MessagePendingProcessor pendingProcessor = new MessagePendingProcessor();
pendingProcessor.processMessagePendingHeaders(rmMsgCtx);
+
+ // commit the current transaction
+ transaction.commit();
+ transaction = storageManager.getTransaction();
// Process the Sequence header, if there is one
SequenceProcessor seqProcessor = new SequenceProcessor();
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org