Question about the JSP engine in Tomcat 4.0b6...

I have a JSP file which compiled and ran under previous non-4.0 versions of
Tomcat.  When the container tries to compile JSP files with lines like the
following....

<%= (checkOn)?" bgcolor=\"#99cc99\"":"" %>

Errors are generated which look like the following (slightly edited)...

____________

A Servlet Exception Has Occurred
org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 451 in the jsp file: foo/foo.jsp

Generated servlet error:
C:\network\jakarta-tomcat-4.0-b6\work\foo\_0002ffoo_0002ffoo_jsp.java:1039:
Invalid character in input.
                out.print( (checkOn)?" bgcolor=\\"#99cc99\\"":"" );
                                                       ^

        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:284)
        at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:526)
        at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:175)
        at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:187)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:456)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:219)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2251)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:446)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:984)
        at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1074)
        at java.lang.Thread.run(Thread.java:484)

________________

It looks like Jasper is escape coding my backslashes.  Previously those
backslashes were to escape code the quotes.  Is the container supposed to
escape code all \ and " characters when using the <%=  %> command?  Is this new
bahavior/spec revision/a bug?

-Ellis Teer

__________________________________________________
Do You Yahoo!?
Make international calls for as low as $.04/minute with Yahoo! Messenger
http://phonecard.yahoo.com/

Reply via email to