Caldarale, Charles R wrote:
>> From: Caldarale, Charles R [mailto:[email protected]]
>> Subject: RE: Update to 6.0.20: deferred EL expressions
>>
>> I've verified your observations by fiddling with one of the
>> JSP examples that come with Tomcat; it does seem like a bug
>> in 6.0.20 at this point. Will need to do some more digging.
>
> I've patched org/apache/jasper/compiler/Generator.java to produce the same
> behavior in 6.0.20 as was available in 6.0.18, at least for my test case. I
> can't say I'm happy with the fix, since I don't understand why it's needed;
> something else that I haven't found has changed, so this is really just
> addressing the symptom, not the underlying cause. If you file a bug report,
> I suspect Mark T will be able to prepare a better fix.
Just followed through the source code and found a handy comment (yes they really
do exist) pointing me towards section JSP.2.2 of the JSP spec. This makes it
clear that #{...} is not allowed in template text so unless I am mis-reading
your original example you are trying to use #{...} in template text so that is
not permitted by the spec. That it working prior to 6.0.20 appears to be a
side-effect of the bug fix Chuck already identified.
What does seem wrong is that JSP.2.2 requires a translation error is you use
#{...} in template text and that doesn't seem to be happening. That is worth
creating a bug for, so please go ahead so it doesn't get forgotten about.
Mark
>
> If the attachment doesn't make it through, here's the change, lines 962-967:
>
> old code:
> if (!pageInfo.isELIgnored() && (n.getEL() != null)) {
> out.printil("out.write("
> + JspUtil.interpreterCall(this.isTagFile, n.getType()
> + "{"
> + new String(n.getText()) + "}", String.class,
> n.getEL().getMapName(), false) + ");");
> } else {
>
> new code:
> if (!pageInfo.isELIgnored() && (n.getEL() != null || n.getType()
> == '#')) {
> out.printil("out.write("
> + JspUtil.interpreterCall(this.isTagFile, n.getType()
> + "{"
> + new String(n.getText()) + "}", String.class,
> n.getType() == '#' ? "null" :
> n.getEL().getMapName(), false) + ");");
> } else {
>
> Only lines 962 and 966 were changed; the others are provided for context.
>
> - Chuck
>
>
> THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
> MATERIAL and is thus for use only by the intended recipient. If you received
> this in error, please contact the sender and delete the e-mail and its
> attachments from all computers.
>
>
>
> ------------------------------------------------------------------------
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]