You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "Lou Amodeo (JIRA)" <tu...@ws.apache.org> on 2008/03/14 21:34:24 UTC

[jira] Created: (TUSCANY-2088) Incorrect ConversationEndedException:Conversation has expired. on reference

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


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


[jira] Assigned: (TUSCANY-2088) Incorrect ConversationEndedException:Conversation has expired. on reference

Posted by "Simon Laws (JIRA)" <tu...@ws.apache.org>.
     [ https://issues.apache.org/jira/browse/TUSCANY-2088?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Simon Laws reassigned TUSCANY-2088:
-----------------------------------

    Assignee: Simon Laws

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


[jira] Resolved: (TUSCANY-2088) Incorrect ConversationEndedException:Conversation has expired. on reference

Posted by "Simon Laws (JIRA)" <tu...@ws.apache.org>.
     [ 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: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org