You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by ml...@apache.org on 2006/11/23 17:02:47 UTC

svn commit: r478606 - in /webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors: CreateSeqMsgProcessor.java CreateSeqResponseMsgProcessor.java SequenceProcessor.java

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: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org