Author: mlovett
Date: Thu Nov 23 08:02:42 2006
New Revision: 478606

URL: http://svn.apache.org/viewvc?view=rev&rev=478606
Log:
Fix a bottleneck in the locking, see SANDESHA2-49

Modified:
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/SequenceProcessor.java

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java?view=diff&rev=478606&r1=478605&r2=478606
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
 Thu Nov 23 08:02:42 2006
@@ -17,14 +17,11 @@
 
 package org.apache.sandesha2.msgprocessors;
 
+import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Map;
-
-import javax.xml.namespace.QName;
 
 import org.apache.axiom.om.OMElement;
 import org.apache.axis2.AxisFault;
-import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
@@ -226,6 +223,27 @@
                                log.debug(message);
                                throw new AxisFault(message);
                        }
+                       
+                       // Add this sequence to the list of inbound sequences
+                       SequencePropertyBean incomingSequenceListBean = 
seqPropMgr.retrieve(
+                                       
Sandesha2Constants.SequenceProperties.ALL_SEQUENCES,
+                                       
Sandesha2Constants.SequenceProperties.INCOMING_SEQUENCE_LIST);
+
+                       if (incomingSequenceListBean == null) {
+                               incomingSequenceListBean = new 
SequencePropertyBean();
+                               
incomingSequenceListBean.setSequencePropertyKey(Sandesha2Constants.SequenceProperties.ALL_SEQUENCES);
+                               
incomingSequenceListBean.setName(Sandesha2Constants.SequenceProperties.INCOMING_SEQUENCE_LIST);
+                               incomingSequenceListBean.setValue(null);
+
+                               // this get inserted before
+                               seqPropMgr.insert(incomingSequenceListBean);
+                       }
+
+                       ArrayList incomingSequenceList = 
SandeshaUtil.getArrayListFromString(incomingSequenceListBean.getValue());
+                       incomingSequenceList.add(newSequenceId);
+                       
incomingSequenceListBean.setValue(incomingSequenceList.toString());
+                       seqPropMgr.update(incomingSequenceListBean);
+
                        
                        //TODO add createSequenceResponse message as the 
referenceMessage to the NextMsgBean.
                        

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java?view=diff&rev=478606&r1=478605&r2=478606
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java
 Thu Nov 23 08:02:42 2006
@@ -17,6 +17,7 @@
 
 package org.apache.sandesha2.msgprocessors;
 
+import java.util.ArrayList;
 import java.util.Iterator;
 
 import org.apache.axiom.om.OMElement;
@@ -168,7 +169,7 @@
                        }
 
                        String offeredSequenceId = (String) 
offeredSequenceBean.getValue();
-
+                       
                        EndpointReference acksToEPR = 
accept.getAcksTo().getEPR();
                        SequencePropertyBean acksToBean = new 
SequencePropertyBean();
                        
acksToBean.setName(Sandesha2Constants.SequenceProperties.ACKS_TO_EPR);
@@ -245,6 +246,26 @@
                                                
Sandesha2Constants.SequenceProperties.SECURITY_TOKEN, tokenData);
                                sequencePropMgr.insert(newToken);
                        }
+                       
+                       // Add the offered sequence into the inbound sequences 
list
+                       SequencePropertyBean incomingSequenceListBean = 
sequencePropMgr.retrieve(
+                                       
Sandesha2Constants.SequenceProperties.ALL_SEQUENCES,
+                                       
Sandesha2Constants.SequenceProperties.INCOMING_SEQUENCE_LIST);
+
+                       if (incomingSequenceListBean == null) {
+                               incomingSequenceListBean = new 
SequencePropertyBean();
+                               
incomingSequenceListBean.setSequencePropertyKey(Sandesha2Constants.SequenceProperties.ALL_SEQUENCES);
+                               
incomingSequenceListBean.setName(Sandesha2Constants.SequenceProperties.INCOMING_SEQUENCE_LIST);
+                               incomingSequenceListBean.setValue(null);
+
+                               // this get inserted before
+                               
sequencePropMgr.insert(incomingSequenceListBean);
+                       }
+
+                       ArrayList incomingSequenceList = 
SandeshaUtil.getArrayListFromString(incomingSequenceListBean.getValue());
+                       incomingSequenceList.add(offeredSequenceId);
+                       
incomingSequenceListBean.setValue(incomingSequenceList.toString());
+                       sequencePropMgr.update(incomingSequenceListBean);
                }
 
                SenderBean target = new SenderBean();

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/SequenceProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/SequenceProcessor.java?view=diff&rev=478606&r1=478605&r2=478606
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/SequenceProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/SequenceProcessor.java
 Thu Nov 23 08:02:42 2006
@@ -261,32 +261,6 @@
                
                if (inOrderInvocation && !msgNoPresentInList) {
 
-                       SequencePropertyBean incomingSequenceListBean = 
seqPropMgr.retrieve(
-                                       
Sandesha2Constants.SequenceProperties.ALL_SEQUENCES,
-                                       
Sandesha2Constants.SequenceProperties.INCOMING_SEQUENCE_LIST);
-
-                       if (incomingSequenceListBean == null) {
-                               ArrayList incomingSequenceList = new 
ArrayList();
-                               incomingSequenceListBean = new 
SequencePropertyBean();
-                               
incomingSequenceListBean.setSequencePropertyKey(Sandesha2Constants.SequenceProperties.ALL_SEQUENCES);
-                               
incomingSequenceListBean.setName(Sandesha2Constants.SequenceProperties.INCOMING_SEQUENCE_LIST);
-                               
incomingSequenceListBean.setValue(incomingSequenceList.toString());
-
-                               // this get inserted before
-                               seqPropMgr.insert(incomingSequenceListBean);
-                       }
-
-                       ArrayList incomingSequenceList = 
SandeshaUtil.getArrayListFromString(incomingSequenceListBean.getValue());
-
-                       // Adding current sequence to the incoming sequence 
List.
-                       if (!incomingSequenceList.contains(sequenceId)) {
-                               incomingSequenceList.add(sequenceId);
-
-                               // saving the property.
-                               
incomingSequenceListBean.setValue(incomingSequenceList.toString());
-                               seqPropMgr.update(incomingSequenceListBean);
-                       }
-
                        // saving the message.
                        try {
                                storageManager.storeMessageContext(key, 
rmMsgCtx.getMessageContext());



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

Reply via email to