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 "Davanum Srinivas (JIRA)" <ji...@apache.org> on 2006/09/25 07:38:53 UTC

[jira] Assigned: (AXIS2-1224) setOperationContext() not thread-safe

     [ http://issues.apache.org/jira/browse/AXIS2-1224?page=all ]

Davanum Srinivas reassigned AXIS2-1224:
---------------------------------------

    Assignee: Deepal Jayasinghe

> setOperationContext() not thread-safe
> -------------------------------------
>
>                 Key: AXIS2-1224
>                 URL: http://issues.apache.org/jira/browse/AXIS2-1224
>             Project: Apache Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: core, deployment
>    Affects Versions: 1.1
>            Reporter: Christopher Sahnwaldt
>         Assigned To: Deepal Jayasinghe
>            Priority: Blocker
>
> If a service has application scope, one service object is created per application.
> When a request comes in, Axis calls the setOperationContext method, and the 
> service object may store the OperationContext or the MessageContext. Then Axis 
> calls the actual service method, in which the service code can access the stored
> OperationContext or MessageContext. But what if two requests come
> in almost simultaneously? The following sequence of method calls may occur:
> - Axis calls setOperationContext with context for request A, the service object 
>   stores the context in an instance field.
> - Axis calls setOperationContext with context for request B, the same service object 
>   stores the context in the same instance field and  thus *overwrites* the context for call A.
> - Axis calls the service method with the input parameters for request A.
> - The service method processes the call, using data from the stored
>   context, and thus *mixes the input parameters for call A with the
>   context data for call B*. Anything can happen...
> - Finally, Axis calls the service method with the input parameters  for call B, the service 
>   method processes the call, using data from the stored context, and thus correctly uses 
>   the input parameters  for call B with the context data for call B. Probably ok, unless 
>   the service method updated the context in some way during the call for request A.

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