Mantis Bugtracker

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0004866 [Resin] minor always 11-22-11 13:36 11-28-11 11:50
Reporter rickHigh View Status public  
Assigned To ferg
Priority normal Resolution fixed  
Status closed   Product Version
Summary 0004866: Basic Roo app causes SAX exception, jspx problem
Description This issue seems to be with jspx.

To reproduce this, create a simple roo app.

There is an issue with roo including an old jstl.jar file. It seemed like this issue went away before by just removing the jstl jar file. Now however, this does not seem to fix it.

The error is as follows:
500 Servlet Exception

file:/var/www/webapps/blog/WEB-INF/tags/util/panel.tagx:1: org.xml.sax.SAXParseException;
lineNumber: 6; columnNumber: 40; The prefix "c" for element "c:if" is not

1: <jsp:root xmlns:jsp="" [^] xmlns:fn="" [^]
xmlns:spring="" [^] xmlns:c="" [^]
2: <jsp:output omit-xml-declaration="yes" />

Here is the actual jspx (tagx really)

$ cat /var/www/webapps/blog/WEB-INF/tags/util/panel.tagx
<jsp:root xmlns:jsp="" [^] xmlns:fn="" [^] xmlns:spring="" [^] xmlns:c="" [^] version="2.0">
  <jsp:output omit-xml-declaration="yes" />
  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)" />

  <jsp:directive.attribute name="title" type="java.lang.String" required="true" rtexprvalue="true" description="The page title (required)" />

  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" />

  <jsp:directive.attribute name="openPane" type="java.lang.String" required="false" rtexprvalue="true" description="Control if the title pane is opened or closed by default (default: true)" />

  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)" />
  <c:if test="${empty render or render}">
    <c:if test="${empty openPane}">
      <c:set value="true" var="openPane" />
    <c:set var="sec_id">
      <spring:escapeBody javaScriptEscape="true" >${id}</spring:escapeBody>
    <c:set var="sec_openPane">
      <spring:escapeBody javaScriptEscape="true" >${openPane}</spring:escapeBody>
    <c:set var="sec_title">
      <spring:escapeBody javaScriptEscape="true" >${title}</spring:escapeBody>
    <script type="text/javascript">dojo.require('dijit.TitlePane');</script>
    <div id="_title_${sec_id}_id">
      <script type="text/javascript">Spring.addDecoration(new Spring.ElementDecoration({elementId : '_title_${sec_id}_id', widgetType : 'dijit.TitlePane', widgetAttrs : {title: '${sec_title}', open: ${sec_openPane}}})); </script>
      <jsp:doBody />

Additional Information
Attached Files

- Relationships

- Notes
11-22-11 13:54

Ok... what is bothering about this is this. If I edit this file, the error message does not change the line number, so it seems like Resin is caching the old version and/or somehow this error is really for another file.

Or I am doing something really stupid, which I wish I could rule out.
11-22-11 14:03

I found the issue. They are including two jstl files that they were not including last time.

They (roo) includes the new ones from glassfish as well as the old ones from Apache.

None of these should be included.

$ ls blog-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib | grep jstl

The bug is really there bug, but it does work with this bug under jetty, jboss and Tomcat.
11-22-11 14:23

Spoke to Scott. He knows exactly how to fix this.
It will be fixed in 4.0.25. I need to verify.

It was related to this... [^]

The big difference is that Roo has included even more JSTL jar files.

Roo includes old JSTL jar files and new JSTL jar files and none of them are marked as provided.

The workaround it to remove these or mark them as provided.

I suspect they do not need the old JSTL files that they are not using.
11-28-11 11:44

Just want to add one note for people who google for this. There is an issue with Roo including old JSTL files which they should not. These files should be marked provided. Also Roo includes a deprecated JSTL and a newer JSTL, both need to be marked provided. However, even with this problem Jetty and Tomcat work with the same application. There are fixes added to Resin around JSTL processing at the SAX JSPX level that will make Resin work even if you include the wrong JSTL file.

Resin 4.0.25 has this fix and Roo generated webapps should work out of the box with this fix.

- Issue History
Date Modified Username Field Change
11-22-11 13:36 rickHigh New Issue
11-22-11 13:54 rickHigh Note Added: 0005622
11-22-11 14:03 rickHigh Note Added: 0005624
11-22-11 14:23 rickHigh Note Added: 0005625
11-28-11 10:16 ferg Assigned To  => ferg
11-28-11 10:16 ferg Status new => closed
11-28-11 10:16 ferg Resolution open => fixed
11-28-11 10:16 ferg Fixed in Version  => 4.0.25
11-28-11 11:44 rickHigh Status closed => feedback
11-28-11 11:44 rickHigh Resolution fixed => reopened
11-28-11 11:44 rickHigh Note Added: 0005632
11-28-11 11:46 rickHigh Status feedback => confirmed
11-28-11 11:46 rickHigh Resolution reopened => fixed
11-28-11 11:50 ferg Status confirmed => closed

Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
35 total queries executed.
29 unique queries executed.
Powered by Mantis Bugtracker