Author: slaws
Date: Thu Oct 18 08:04:06 2007
New Revision: 585999
URL: http://svn.apache.org/viewvc?rev=585999&view=rev
Log:
TUSCANY-1854
Initial fix to ensure that when using remote bindings and client and server
components are running in the same VM the conversationID from the message is
picked up and an appropriate conversation started.
Modified:
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeWireInvoker.java
Modified:
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java?rev=585999&r1=585998&r2=585999&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
(original)
+++
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
Thu Oct 18 08:04:06 2007
@@ -328,7 +328,11 @@
private void conversationPostInvoke(Message msg, RuntimeWire wire) throws
TargetDestructionException {
Operation operation = msg.getOperation();
ConversationSequence sequence = operation.getConversationSequence();
- if (sequence == ConversationSequence.CONVERSATION_END) {
+ // We check that conversation has not already ended as there is only
one
+ // comversation manager in the runtime and so, in the case of remote
bindings,
+ // the conversation will already have been stopped when we get back to
the client
+ if ((sequence == ConversationSequence.CONVERSATION_END) &&
+ (conversation.getState()!= ConversationState.ENDED)) {
conversation.end();
// remove conversation id from scope container
Modified:
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeWireInvoker.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeWireInvoker.java?rev=585999&r1=585998&r2=585999&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeWireInvoker.java
(original)
+++
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeWireInvoker.java
Thu Oct 18 08:04:06 2007
@@ -208,7 +208,16 @@
return;
}
if (conversation == null || conversation.getState() ==
ConversationState.ENDED) {
- conversation =
conversationManager.startConversation(conversationID);
+ // in some cases the ConversationID that should be used comes in
with the
+ // message, e.g. when ws binding is in use.
+ if (msg.getTo().getReferenceParameters().getConversationID() !=
null) {
+ conversationID =
msg.getTo().getReferenceParameters().getConversationID();
+ }
+ conversation = conversationManager.getConversation(conversationID);
+
+ if (conversation == null) {
+ conversation =
conversationManager.startConversation(conversationID);
+ }
}
// TODO - assuming that the conversation ID is a string here when
// it can be any object that is serializable to XML
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]