You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Henri Yandell (JIRA)" <ji...@apache.org> on 2007/08/07 04:47:59 UTC
[jira] Reopened: (EL-9) [el] ClassCastException when using
commons-el.jar and standard.jar el evaluator
[ https://issues.apache.org/jira/browse/EL-9?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Henri Yandell reopened EL-9:
----------------------------
> [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
> 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.