[
https://issues.apache.org/jira/browse/TUSCANY-2088?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Simon Laws resolved TUSCANY-2088.
---------------------------------
Resolution: Fixed
Fix Version/s: Java-SCA-1.2
I've put in a change to stop the JDKInvocationHandler testing for conversation
timeouts if it has no access to the target service. It needs to check for
timeouts if the wire is local and hence does have access to the target service
as in this case there will be no RuntimeWoreInvoker.
I'm going to close this JIRA off and shortly open another one as looking
through the conversation functionality now it seems that our timeout handling
is not optimal at present and generally there is complexity in conversation
handling that could be reduced.
> Incorrect ConversationEndedException:Conversation has expired. on reference
> -----------------------------------------------------------------------------
>
> Key: TUSCANY-2088
> URL: https://issues.apache.org/jira/browse/TUSCANY-2088
> Project: Tuscany
> Issue Type: Bug
> Reporter: Lou Amodeo
> Assignee: Simon Laws
> Fix For: Java-SCA-1.2
>
>
> I am seeing a problems with an erroneous conversation ended state for
> references that are not wired directly to services. The following snippet
> from JDKInvocationHandler shows 2 issues. 1) An assumption that there will
> always be a component wired to a target and 2) That the ConversationAttributes
> which are specified on the service impl are accessible. In the case of a
> remote service accessed using binding.ws neither of these are true. If I
> revert back to the old way of not handling expiry on the client the
> conversation behaves as expected.
>
> ConversationManager conversationManager =
> ((RuntimeWireImpl)wire).getConversationManager();
> if (conversation == null || conversation.getState() ==
> ConversationState.ENDED) {
> conversation = conversationManager.startConversation(getConversationID());
>
> conversation.initializeConversationAttributes(wire.getTarget().getComponent());
> if (callableReference != null) {
> ((CallableReferenceImpl)callableReference).attachConversation(conversation);
> }
> }
> } else if (conversation.isExpired()) {
> throw new ConversationEndedException("Conversation has expired.");
> }
> conversation.updateLastReferencedTime();
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]