commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christian Leskowsky (JIRA)" <>
Subject [jira] Updated: (EL-9) [el] ClassCastException when using commons-el.jar and standard.jar el evaluator
Date Sun, 17 Jun 2007 17:35:26 GMT


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 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:
>             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:
For additional commands, e-mail:

View raw message