jakartaee / expression-language

Jakarta Expression Language
https://eclipse.org/ee4j/el
Other
67 stars 49 forks source link

EL expressions that contain unnecessary parentheses fail #78

Closed tmiyargi closed 4 years ago

tmiyargi commented 5 years ago

EL with unnecessary parentheses fail. For instance:

<c:set var = "i" scope = "session" value = "1"/>
<c:if test="${(i) == '1'}">
<p>i is:  <c:out value = "${i}"/><p>
</c:if>

Stack trace:

org.apache.jasper.JasperException: /index.jsp (JBWEB004251: An error occurred at line: 6 column: 8) JBWEB004196: ${(i) == '1'} contains invalid expression(s)
    at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:45)
    at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:276)
    at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:91)

Nested stack trace:

15:16:51,904 INFO  [stdout] (http_8080 task-1) com.sun.el.parser.ParseException.<init>(ParseException.java:179)
--
15:16:51,904 INFO  [stdout] (http_8080 task-1) com.sun.el.parser.ELParser.generateParseException(ELParser.java:2963)
15:16:51,904 INFO  [stdout] (http_8080 task-1) com.sun.el.parser.ELParser.jj_consume_token(ELParser.java:2845)
15:16:51,904 INFO  [stdout] (http_8080 task-1) com.sun.el.parser.ELParser.LambdaExpression(ELParser.java:295)
15:16:51,904 INFO  [stdout] (http_8080 task-1) com.sun.el.parser.ELParser.Assignment(ELParser.java:226)
15:16:51,904 INFO  [stdout] (http_8080 task-1) com.sun.el.parser.ELParser.SemiColon(ELParser.java:181)
15:16:51,904 INFO  [stdout] (http_8080 task-1) com.sun.el.parser.ELParser.Expression(ELParser.java:174)

Similar issue in Tomcat https://bz.apache.org/bugzilla/show_bug.cgi?id=56179

markt-asf commented 4 years ago

This was fixed by #79