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/07/28 11:20:13 UTC

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

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


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


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

Posted by "Deepal Jayasinghe (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/AXIS2-939?page=all ]

Deepal Jayasinghe resolved AXIS2-939.
-------------------------------------

    Resolution: Fixed

InstanceDispatcher call 

axisOperation.registerMessageContext(msgContext, operationContext);

so it is not must to call that method in side AddressingBasedDispatcher as well.



If you still see a problem in the code please re-open the issue.

> 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


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

Posted by "Davanum Srinivas (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/AXIS2-939?page=all ]

Davanum Srinivas reopened AXIS2-939:
------------------------------------

             

> 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


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

Posted by "Thomas Eckoldt (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/AXIS2-939?page=comments#action_12426858 ] 
            
Thomas Eckoldt commented on AXIS2-939:
--------------------------------------

Could you please re-open this issue until the bug in AddressingBasedDispatcher is fixed?
Thanks!

> 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
>
> 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


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

Posted by "Deepal Jayasinghe (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/AXIS2-939?page=all ]

Deepal Jayasinghe resolved AXIS2-939.
-------------------------------------

    Resolution: Fixed

fixed in current SVN

> 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
>
> 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


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

Posted by "Davanum Srinivas (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/AXIS2-939?page=all ]

Davanum Srinivas reopened AXIS2-939:
------------------------------------

      Assignee: Deepal Jayasinghe
             

> 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


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

Posted by "Thomas Eckoldt (JIRA)" <ji...@apache.org>.
    [ 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


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

Posted by "Thomas Eckoldt (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/AXIS2-939?page=comments#action_12424541 ] 
            
Thomas Eckoldt commented on AXIS2-939:
--------------------------------------

Fix in OutInAxisOperation works fine, but in AddressingBasedDispatcher the problem is not resolved.
I think the additional call

operationContext.addMessageContext(msgctx); 

is not sufficient as it does not trigger OperationContext.cleanup().
IMO the related part in AddressingBasedDispatcher should be somethink like

....
               if (operationContext != null) {
                   msgctx.setAxisOperation(operationContext.getAxisOperation());
                   msgctx.setOperationContext(operationContext);
                   msgctx.setServiceContext((ServiceContext) operationContext.getParent());
                   msgctx.setAxisService(
                           ((ServiceContext) operationContext.getParent()).getAxisService());
                   
                   //BUFFIX!
                   //register message context to trigger cleanup in operation context map 
                   msgctx.getAxisOperation().registerMessageContext(msgctx, operationContext);
                   //BUFFIX!
                   
                   msgctx.setServiceGroupContextId(
                           ((ServiceGroupContext) msgctx.getServiceContext().getParent()).getId());
               }
...

> 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
>
> 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


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

Posted by "Deepal Jayasinghe (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-939?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Deepal Jayasinghe resolved AXIS2-939.
-------------------------------------

    Resolution: Fixed

issue fixed in the current SVN code base

> Client API does not remove OperationContext instances from configuration context after MEP completes
> ----------------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-939
>                 URL: https://issues.apache.org/jira/browse/AXIS2-939
>             Project: 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.
-
You can reply to this email to add a comment to the issue online.


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