tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Konstantin Kolinko <knst.koli...@gmail.com>
Subject Re: NullPointerException for conditions in compiled JSPs
Date Wed, 11 Sep 2013 14:00:38 GMT
2013/9/11 Arvīds Grabovskis <arvids.grabovskis@gmail.com>:
> Hi,
>
> If JSP includes a line "<c:if test="${nonExisting}">Hello,world!</c:if>"
> where "nonExisting" is attribute that does not exist, then
> NullPointerException will be thrown. The cause is at
> http://svn.apache.org/repos/asf/tomcat/trunk/java/org/apache/jasper/compiler/JspUtil.java
> at
> line #421 which generates something like:
> ((java.lang.Boolean)
> org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${nonExisting}",
> java.lang.Boolean.class, (javax.servlet.jsp.PageContext)_jspx_page_context,
> null, false)).booleanValue()
>
> The result of proprietaryEvaluate() is null (because of EL 3.0 changes
> regarding coercing), hence calling booleanValue() will throw NPE. The
> latest changes in EL specification does require guarding against such null
> pointer access (otherwise it will break lots of existing applications). I
> really hope that this is not intended behavior.
>
> Double checked the existence of error with Tomcat v8.0.0-RC1 (the same
> problem affects the Glassfish v4, but they have a forked version of JSPC
>

1. Why does it try to convert to "boolean" and not to "Boolean"?

2. Yes, a null cannot be converted to primitive boolean value, so an
NPE is the correct behaviour here. So the generated code is correct.

So the question is why EL expression "${nonExisting}" or "${null}" was
not evaluated to Boolean.FALSE.

What version of JSTL are you using?
Are you sure that you are using EL-aware versions of the tags
(JSTL 1.1+) instead of older JSTL 1.0 ones?

What are the steps to reproduce the issue on a clear installation?
What is your version of Tomcat?
What is you stacktrace?


Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message