[ 
https://issues.apache.org/jira/browse/AXIS2-4819?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andreas Veithen updated AXIS2-4819:
-----------------------------------

    Fix Version/s: 1.5.4

Targeting this one for 1.5.4.

> Race condition in WSDLDataLocator
> ---------------------------------
>
>                 Key: AXIS2-4819
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4819
>             Project: Axis2
>          Issue Type: Bug
>          Components: wsdl
>    Affects Versions: 1.4.1
>            Reporter: Ivan Dubrov
>             Fix For: 1.5.4
>
>
> Observable behaviour:
> Sometimes WSDL request returns wrong WSDL. This occurs when multiple WSDL 
> requests are made at the same time.
> The cause:
> org.apache.axis2.dataretrieval.WSDLDataLocator is created only once and 
> reused in a multiple requests (see DataLocatorFactory, static method 
> createDataLocator. The problem is that DataLocator contains a state that is 
> changed during the request, most importantly the field "theService". It is 
> possible that two concurrent WSDL request are processed at the same time and 
> one request overrides theService field set by other request. Consider the 
> following scenario:
> 1. Both requests arrive (at the same time) at the line 129 (I assume version 
> 1.4.1), which read:
> <pre>
> axisService2WOM = new AxisService2WSDL11(theService);
> </pre>
> 2. Both requests start executing the line (reading theService field).
> 3. Since WSDLDataLocator is shared between those two requests and theService 
> is field of that class, both requests will use same AxisService to generate 
> WSDL. As a result, both requests will output the same WSDL, which is 
> obviously wrong.
> I don't understand, why theService is made field after all? I think, it 
> should be a local variable instead.

-- 
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to