DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13223>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13223

JSP pages in XML syntax do not compile properly

           Summary: JSP pages in XML syntax do not compile properly
           Product: Tomcat 4
           Version: 4.1.12
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Jasper 2
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


When using the XML syntax for JSP pages, compile errors are thrown whenever an 
XML-syntax JSP tag is used to apply an attribute value as in this JSP page:
____________________________________________________________________
This JSP fails:
____________________________________________________________________
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page";
          version="1.2">
<jsp:directive.page language="java" import="java.text.*" session="false" 
isThreadSafe="true" isErrorPage="false"  />
<jsp:scriptlet>
java.text.Annotation recordDetails = new java.text.Annotation("This is a test 
value");
pageContext.setAttribute("recordDetails", recordDetails, 
PageContext.PAGE_SCOPE);
</jsp:scriptlet>
<html>
<head>
  <title><jsp:expression>System.getProperty("java.io.tmpdir")
</jsp:expression></title>
</head>
<body>
  <table class="EntryFormContainer" cols="6" cellpadding="1" cellspacing="1" 
border="0">
    <tr>
      <td align="right">Case ID:</td>
      <td align="left" colspan="7"><input type="text" name="caseID" 
READONLY="true" value='<jsp:getProperty name="recordDetails" 
property="value" />' class="DisabledField"/></td>
    </tr>
  </table>
</body>
</html>
</jsp:root>


____________________________________________________________________
This JSP works:
____________________________________________________________________
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page";
          version="1.2">
<jsp:directive.page language="java" import="java.text.*" session="false" 
isThreadSafe="true" isErrorPage="false"  />
<jsp:scriptlet>
java.text.Annotation recordDetails = new java.text.Annotation("This is a test 
value");
pageContext.setAttribute("recordDetails", recordDetails, 
PageContext.PAGE_SCOPE);
</jsp:scriptlet>
<html>
<head>
  <title><jsp:expression>System.getProperty("java.io.tmpdir")
</jsp:expression></title>
</head>
<body>
  <table class="EntryFormContainer" cols="6" cellpadding="1" cellspacing="1" 
border="0">
    <tr>
      <td align="right">Case ID:</td>
      <td align="left" colspan="7"><input type="text" name="caseID" 
READONLY="true" value="" class="DisabledField"/><jsp:getProperty 
name="recordDetails" property="value" /></td>
    </tr>
  </table>
</body>
</html>
</jsp:root>

____________________________________________________________________
This JSP also fails:
____________________________________________________________________
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page";
          version="1.2">
<jsp:directive.page language="java" import="java.text.*" session="false" 
isThreadSafe="true" isErrorPage="false"  />
<jsp:scriptlet>
java.text.Annotation recordDetails = new java.text.Annotation("This is a test 
value");
pageContext.setAttribute("recordDetails", recordDetails, 
PageContext.PAGE_SCOPE);
</jsp:scriptlet>
<html>
<head>
  <title><jsp:expression>System.getProperty("java.io.tmpdir")
</jsp:expression></title>
</head>
<body>
  <table class="EntryFormContainer" cols="6" cellpadding="1" cellspacing="1" 
border="0">
    <tr>
      <td align="right">Case ID:</td>
      <td align="left" colspan="7"><input type="text" name="caseID" 
READONLY="true" value='jsp:getProperty name="recordDetails" property="value"' 
class="DisabledField"/></td>
    </tr>
  </table>
</body>
</html>
</jsp:root>

Several additional variations on the above themes also fail.
The spec appears to support the first JSP example.  On the chance that I might 
have misread the spec, I also tried it without the < and />, this variation 
also fails.
It may be worth noting that this exact same example JSP works, as long as the 
jsp:root tag is removed and the page, scriptlet, and expression tags are 
replaced with their non-XML equivalents as follows:
<%@page language="java" import="java.text.*" session="false" 
isThreadSafe="true" isErrorPage="false" %>
<%
java.text.Annotation recordDetails = new java.text.Annotation("This is a test 
value");
pageContext.setAttribute("recordDetails", recordDetails, 
PageContext.PAGE_SCOPE);
%>
<html>
<head>
  <title><%=System.getProperty("java.io.tmpdir")%></title>
</head>
<body>
  <table class="EntryFormContainer" cols="6" cellpadding="1" cellspacing="1" 
border="0">
    <tr>
      <td align="right">Case ID:</td>
      <td align="left" colspan="7"><input type="text" name="caseID" 
READONLY="true" value='<jsp:getProperty name="recordDetails" 
property="value" />' class="DisabledField"/></td>
    </tr>
  </table>
</body>
</html>

In summary, it appears that the XML syntax is not supported in attribute value 
assignment.

The exception thrown is as follows (Note the problem in property lookup, this 
may be another, unrelated, bug).

type Exception report

message 

description The server encountered an internal error () that prevented it from 
fulfilling this request.

exception 

org.apache.jasper.JasperException: Unable to compile class for JSP
        at org.apache.jasper.JspCompilationContext.compile
(JspCompilationContext.java:479)
        at org.apache.jasper.servlet.JspServletWrapper.service
(JspServletWrapper.java:184)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile
(JspServlet.java:289)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
        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:260)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContext.invoke
(StandardContext.java:2396)
        at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:180)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.valves.ErrorDispatcherValve.invoke
(ErrorDispatcherValve.java:170)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:641)
        at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:172)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:641)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:174)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.coyote.tomcat4.CoyoteAdapter.service
(CoyoteAdapter.java:223)
        at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:405)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnectio
n(Http11Protocol.java:380)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt
(PoolTcpEndpoint.java:508)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:533)
        at java.lang.Thread.run(Thread.java:484)


root cause 

java.lang.NullPointerException
        at java.util.Hashtable.get(Hashtable.java:320)
        at java.util.PropertyResourceBundle.handleGetObject
(PropertyResourceBundle.java:105)
        at java.util.ResourceBundle.getObject(ResourceBundle.java:376)
        at java.util.ResourceBundle.getString(ResourceBundle.java:354)
        at org.apache.jasper.compiler.ErrorDispatcher.getString
(ErrorDispatcher.java:364)
        at org.apache.jasper.compiler.ErrorDispatcher.dispatch
(ErrorDispatcher.java:398)
        at org.apache.jasper.compiler.ErrorDispatcher.jspError
(ErrorDispatcher.java:245)
        at org.apache.jasper.compiler.JspDocumentParser.parse
(JspDocumentParser.java:167)
        at org.apache.jasper.compiler.ParserController.parse
(ParserController.java:193)
        at org.apache.jasper.compiler.ParserController.parse
(ParserController.java:153)
        at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:219)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
        at org.apache.jasper.JspCompilationContext.compile
(JspCompilationContext.java:474)
        at org.apache.jasper.servlet.JspServletWrapper.service
(JspServletWrapper.java:184)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile
(JspServlet.java:289)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
        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:260)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContext.invoke
(StandardContext.java:2396)
        at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:180)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.valves.ErrorDispatcherValve.invoke
(ErrorDispatcherValve.java:170)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:641)
        at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:172)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:641)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:174)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex
t(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.coyote.tomcat4.CoyoteAdapter.service
(CoyoteAdapter.java:223)
        at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:405)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnectio
n(Http11Protocol.java:380)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt
(PoolTcpEndpoint.java:508)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:533)
        at java.lang.Thread.run(Thread.java:484)

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to