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

Christian Leskowsky updated EL-9:
---------------------------------

    Attachment: implicitobjects.patch

I've updated the attribute key to refer to "org.apache.commons.el". The key 
ImplicitObjects is using now clashes with the same class from the JSTL.

See http://opensource.atlassian.com/projects/spring/browse/SPR-3563 for more 
info on where this issue has been coming up.


> [el] ClassCastException when using commons-el.jar and standard.jar el 
> evaluator
> -------------------------------------------------------------------------------
>
>                 Key: EL-9
>                 URL: https://issues.apache.org/jira/browse/EL-9
>             Project: Commons EL
>          Issue Type: Bug
>    Affects Versions: 1.0 Final
>         Environment: Operating System: All
> Platform: PC
>            Reporter: Francois Plouffe
>            Priority: Critical
>         Attachments: fix_bug_29402.txt, implicitobjects.patch
>
>
> Runing Tomcat 5.0.14 and 5.0.25. Using Apache standard.jar taglibs.
> I am writing a custom tag that accept el expression in attributes. My tag 
> class 
> is using pageContext.getExpressionEvaluator.evaluate to evaluate el 
> expressions.
> In a jsp page, when using only my custom tag like this:
> <mytag:setLocale value="${cookie.Language.value}"/>, it work fine and 
> evaluate 
> to the correct cookie value.
> But when I am using any tag from standard.jar, problem occurs. For example, 
> when inserting <c:out value="${cookie.Language.value"}/> before 
> mytag:setLocale, pageContext.getExpressionEvaluator.evaluate throws a 
> ClassCastException. When c:out is inserted after mytag:setLocale, the 
> ClassCastException is thrown from standard.jar.
> I have found the potential cause: when mytag:setLocale is called first, 
> pageContext.getExpressionEvaluator.evaluate  appens to add in the pageContext 
> attributes hashMap an object of type org.apache.commons.el.ImplicitObjects 
> with 
> key "org.apache.taglibs.standard.ImplicitObjects". Then when c:out is called 
> next, it retreive the from the pageContext the 
> key "org.apache.taglibs.standard.ImplicitObjects", wich is not of type 
> org.apache.taglibs.standard.lang.jstl.ImplicitObjects. The reverse appens 
> when 
> c:out is called first; an object with the 
> key "org.apache.taglibs.standard.ImplicitObjects" of type 
> org.apache.taglibs.standard.lang.jstl.ImplicitObjects is added in the 
> pageContext attributes hashMap. And when mytag:setLocale is called, 
> org.apache.commons.el.ImplicitObjects.getImplicitObjects throws a 
> ClassCastException when pContext.getAttribute returns with an object of type 
> org.apache.taglibs.standard.lang.jstl.ImplicitObjects.
> The source of the problem is that both package insert or retreive from the 
> pagecontext attributes hashMap the same key name 
> ("org.apache.taglibs.standard.ImplicitObjects"), but with different type. 
> Base 
> on the key name, I guess standard.jar is correct in using it, but commons-
> el.jar is not.
> I tested a modified commons-el.jar with member sAttributeName from 
> org.apache.commons.el.ImplicitObjects setted to, 
> well, "org.apache.commons.el.ImplicitObjects". It worked just fine both cases.
> The problem would only occurs if el evaluator from both package are called in 
> the same jsp page with jsp's implicit objects. I dosen't have to be the same 
> implicit object.
> Since I can't beleive I am the first one with this problem, I first tried 
> find 
> something wrong in my setup/code. But it seems not.

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