You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Thomas Eckoldt (JIRA)" <ji...@apache.org> on 2006/09/18 14:51:22 UTC

[jira] Commented: (AXIS2-939) Client API does not remove OperationContext instances from configuration context after MEP completes

    [ http://issues.apache.org/jira/browse/AXIS2-939?page=comments#action_12435471 ] 
            
Thomas Eckoldt commented on AXIS2-939:
--------------------------------------

Please re-open the issue (I don't seem to have the access-rights to do it), the problem still exists.
The method call in InstanceDispatcher occurs only in certain circumstances. In my case the method returns
in the first if-statement and never reaches the code block you mentioned:

    public void invoke(MessageContext msgContext) throws AxisFault {
        ServiceContext serviceContext = msgContext.getServiceContext();

        if ((msgContext.getOperationContext() != null)
                && (serviceContext != null)) {
            msgContext.setServiceGroupContextId(
                    ((ServiceGroupContext) serviceContext.getParent()).getId());

            return; 
        }
        .....




> Client API does not remove OperationContext instances from configuration context after MEP completes
> ----------------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-939
>                 URL: http://issues.apache.org/jira/browse/AXIS2-939
>             Project: Apache Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: client-api
>    Affects Versions: 1.0
>            Reporter: Thomas Eckoldt
>         Assigned To: Deepal Jayasinghe
>
> I'm using the ServiceClient class to make SOAP calls to a web service provider. The used MEP is OUT-IN, transport is HTTP. In case of a synchronous single transport operation, AxisOperation.registerOperationContext() is called twice, once for the outgoing message (request) and once for the incoming message (response). Each message will have a unique message id assigned. AxisOperation.registerOperationContext() calls ConfigurationContext.registerOperationContext() with the message id as argument. This means the OperationContext is stored in the operation context map with the message id as key and it means, if this method is called twice, you will end with two entries in the map. Only one (the last) will be removed from the map by OperationContext.cleanup(). 
> Another case is for asynchronous dual transport operations using WS-A. For the outgoing message everything is fine, the OperationContext is registered in the map and contains the MessageContext for the outgoing message. But when the response is received, the AddressingBasedDispatcher class does not register the message context in the operation context (in method invoke()). This means the operation context contains only the OUT-MessageContext, not the IN-MessageContext and will never be removed from the context operation map. 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org