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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to