geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kevan Miller (JIRA)" <j...@apache.org>
Subject [jira] Closed: (GERONIMO-4957) javax.el.CompositeELResolver is not thread-safe
Date Thu, 25 Mar 2010 01:03:27 GMT

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

Kevan Miller closed GERONIMO-4957.
----------------------------------

       Resolution: Fixed
    Fix Version/s: 2.2.1
                   2.1.5

> javax.el.CompositeELResolver is not thread-safe
> -----------------------------------------------
>
>                 Key: GERONIMO-4957
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-4957
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: specs
>    Affects Versions: 2.1.4, 2.1.5, 2.2, 2.2.1, 3.0
>            Reporter: Kevan Miller
>            Assignee: Kevan Miller
>             Fix For: 2.1.5, 2.2.1
>
>
> A user reported that they get an intermittent NullPointerException:
> 17:08:45,133 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
> java.lang.NullPointerException
> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
> at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.access$301(FacesCompositeELResolver.java:46)
> at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver$4.invoke(FacesCompositeELResolver.java:108)
> at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.invoke(FacesCompositeELResolver.java:148)
> at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:104)
> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
> at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:61)
> at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:925)
> ...
> The only way I can explain this exception is that multiple threads are simultaneously
invoking add() (and the resolvers[] array is becoming corrupted). Or multiple threads are
simultaneously accessing add() and getValue() (and getValue() is accessing an uninitialized
array element). 
> The EL spec is silent on thread-safety issues for CompositeELResolver (though it does
identify thread safety issues for some other classes). I don't see anything spec-wise that
prevents multi-threaded access to CompositeELResolver. If anyone has other opinions, let me
know. Otherwise, looks like we need to close some timing windows in CompositeELResolver.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message