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