Author: gatfora
Date: Fri Nov  2 06:33:27 2007
New Revision: 591326

URL: http://svn.apache.org/viewvc?rev=591326&view=rev
Log:
Move the location for lookup for hasUserTransaction to before any updates are 
made to the storage manager to give the store a chance to setup any 
transactional information required.

Modified:
    
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java

Modified: 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java?rev=591326&r1=591325&r2=591326&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
 Fri Nov  2 06:33:27 2007
@@ -29,7 +29,6 @@
 import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.sandesha2.MessageValidator;
 import org.apache.sandesha2.RMMsgContext;
 import org.apache.sandesha2.Sandesha2Constants;
 import org.apache.sandesha2.SandeshaException;
@@ -244,6 +243,10 @@
                
                String outSequenceID = null;
 
+               // Work out if there is a user transaction involved before 
updating any store state
+               // to give any storage manager interface a chance to setup any 
transactional state
+               boolean hasUserTransaction = 
storageManager.hasUserTransaction(msgContext);
+               
                if (rmsBean == null) { 
                        // SENDING THE CREATE SEQUENCE.
                        synchronized (RMSBeanMgr.class) {
@@ -414,7 +417,7 @@
                
                // processing the response if not an dummy.
                if (!dummyMessage)
-                       processResponseMessage(rmMsgCtx, rmsBean, 
internalSequenceId, outSequenceID, messageNumber, storageKey, storageManager, 
tran);
+                       processResponseMessage(rmMsgCtx, rmsBean, 
internalSequenceId, outSequenceID, messageNumber, storageKey, storageManager, 
tran, hasUserTransaction);
                
                //Users wont be able to get reliable response msgs in the back 
channel in the back channel of a 
                //reliable message. If he doesn't have a endpoint he should use 
polling mechanisms.
@@ -506,7 +509,7 @@
        }
 
        private void processResponseMessage(RMMsgContext rmMsg, RMSBean 
rmsBean, String internalSequenceId, String outSequenceID, long messageNumber,
-                   String storageKey, StorageManager storageManager, 
Transaction tran) throws AxisFault {
+                   String storageKey, StorageManager storageManager, 
Transaction tran, boolean hasUserTransaction) throws AxisFault {
                if (log.isDebugEnabled())
                        log.debug("Enter: 
ApplicationMsgProcessor::processResponseMessage, " + internalSequenceId + ", " 
+ outSequenceID);
 
@@ -531,7 +534,7 @@
                }
 
                boolean sendingNow = false;
-               if(outSequenceID != null && 
!storageManager.hasUserTransaction(msg)) {
+               if(outSequenceID != null && !hasUserTransaction) {
                  sendingNow = true;
                }
                



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to