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

Andrea Ligios updated WW-4592:
------------------------------
    Description: 
Looking at the source code of the ScopedModelDriven Interceptor, I can see the 
following variables scoped at class level:

{code:java}
     private String scope;
     private String name;
     private String className;
     private ObjectFactory objectFactory;
{code}

https://github.com/apache/struts/blob/master/core/src/main/java/com/opensymphony/xwork2/interceptor/ScopedModelDrivenInterceptor.java#L85-L88

AFAIK, this means they're not thread safe, since different requests could 
override those variables altering the workflow of other threads.

Even if it's not that easy for it to happen, it seems just wrong.

And by the way, what's the problem on having those defined at method level, and 
settle things once and for all ? 

  was:
Looking at the source code of the ScopedModelDriven Interceptor, I can see the 
following variables scoped at class level:

     private String scope;
     private String name;
     private String className;
     private ObjectFactory objectFactory;

https://github.com/apache/struts/blob/master/core/src/main/java/com/opensymphony/xwork2/interceptor/ScopedModelDrivenInterceptor.java#L85-L88

AFAIK, this means they're not thread safe, since different requests could 
override those variables altering the workflow of other threads.

Even if it's not that easy for it to happen, it seems just wrong.

And by the way, what's the problem on having those defined at method level, and 
settle things once and for all ? 


> The ScopedModelDriven Interceptor is not thread safe ?
> ------------------------------------------------------
>
>                 Key: WW-4592
>                 URL: https://issues.apache.org/jira/browse/WW-4592
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Interceptors
>            Reporter: Andrea Ligios
>
> Looking at the source code of the ScopedModelDriven Interceptor, I can see 
> the following variables scoped at class level:
> {code:java}
>      private String scope;
>      private String name;
>      private String className;
>      private ObjectFactory objectFactory;
> {code}
> https://github.com/apache/struts/blob/master/core/src/main/java/com/opensymphony/xwork2/interceptor/ScopedModelDrivenInterceptor.java#L85-L88
> AFAIK, this means they're not thread safe, since different requests could 
> override those variables altering the workflow of other threads.
> Even if it's not that easy for it to happen, it seems just wrong.
> And by the way, what's the problem on having those defined at method level, 
> and settle things once and for all ? 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to