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