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]