On 29/09/2015 20:37, Violeta Georgieva wrote:
> 2015-09-28 14:26 GMT+03:00 Mark Thomas <[email protected]>:
<snip/>
>> The proposed 8.0.27 release is:
>> [ ] Broken - do not release
>> [ ] Stable - go ahead and release as 8.0.27
>
> I have the following use case [1]. It used to be working with the previous
> version (8.0.26).
>
> Now it fails with the following [2].
This looks to be caused by the changes for BZ 57316.
> I didn't find in the spec whether this is allowed or not :( however the
> exception is bad.
In what way? The JSP isn't valid so you are getting an exception.
More comments in-line.
>
> Regards,
> Violeta
>
> [1]
>
> Index: org/apache/el/TestELInJsp.java
> ===================================================================
> --- org/apache/el/TestELInJsp.java (revision 1705912)
> +++ org/apache/el/TestELInJsp.java (working copy)
> @@ -318,6 +318,7 @@
> assertEcho(result, "20-4");
> assertEcho(result, "21-[{value=11}, {value=12}, {value=13},
> {value=14}]");
> assertEcho(result, "22-[{value=11}, {value=12}, {value=13},
> {value=14}]");
> + assertEcho(result, "23-\\\"foo\\\"");
> }
>
> @Test
> Index: webapp/el-misc.jsp
> ===================================================================
> --- webapp/el-misc.jsp (revision 1705912)
> +++ webapp/el-misc.jsp (working copy)
> @@ -41,4 +41,5 @@
> <p>20-${{1,2,3,4}.stream().max().orElse(-1)}</p>
> <tags:echo
> echo='21-${{1,2,3,4}.stream().sorted().map(u->{"value":u+10}).toList()}' />
>
> <p>22-${{1,2,3,4}.stream().sorted().map(u->{"value":u+10}).toList()}</p>
> </body>
> + <tags:echo echo="23-${\"\\\"foo\\\"\"}" />
This is a good example of where things get interesting. The above line
is parsed as follows:
<tags:echo echo="23-${
is parsed using the JSP spec followed by
\"\\\"foo\\\"\"
which is parsed with the EL spec and then
}" />
is parsed with the JSP spec again.
The problem is in the EL section. You are trying to define a literal so
you do not want to escape the initial and final " characters. By
escaping them you are making them part of the String literal which means
you have an EL expression containing just a literal which is missing the
mandatory quotes.
> </html>
> \ No newline at end of file
>
> [2]
>
> org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for
> servlet [jsp] in context with path [/test] threw exception [/el-misc.jsp
> (line: 44, column: 21) attribute for " is not properly terminated] with
> root cause
> org.apache.jasper.JasperException: /el-misc.jsp (line: 44, column: 21)
> attribute for " is not properly terminated
Ah. When you say the exception is bad do you mean it should report
[echo] rather than ["] in the error message above? That does seem like a
reasonable requirement.
So far, I haven't seen anything that I think is serious enough to stop
the 8.0.27 release.
Mark
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]