DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG· RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=35252>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND· INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=35252 Summary: jasper2 produced malformed expanded XML view Product: Tomcat 5 Version: 5.0.28 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Jasper AssignedTo: tomcat-dev@jakarta.apache.org ReportedBy: [EMAIL PROTECTED] The FirstPassVisitor in org.apache.jasper.compiler.PageDataImpl adds all attributes (except "version") of jsp:root elements of included JSPs to jsp:root of expanded XML view. The expanded XML view is thus, often malformed. Any entity, such as a TagLibraryValidator, that tries to subsequently parse the malformed expanded XML view, fails. For example: main.jspx (using Jakarta Taglibs "standard" JSTL impl): -------------------------------------------------------------- <?xml version="1.0" encoding="UTF-8"?> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:c="http://java.sun.com/jsp/jstl/core" version="2.0" > <jsp:directive.include file="one.jspx"/> </jsp:root> where one.jspx is: ---------------------- <?xml version="1.0" encoding="UTF-8"?> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" /> gives: <top-of-stack-trace> org.apache.jasper.JasperException: <h3>Validation error messages from TagLibraryValidator for c</h3><p>null: org.xml.sax.SAXParseException: Attribute "jsp" bound to namespace "http://www.w3.org/2000/xmlns/" was already specified for element "jsp:root".</p> </top-of-stack-trace> as, in this scenario, attribute xmlns:jsp gets added twice. [Problem reported by "Dino Klein" <[EMAIL PROTECTED]> on [EMAIL PROTECTED] I'm proposing a patch that causes FirstPassVisitor to only add those attributes to the jsp:root of the expanded XML view that have not been already added. Index: PageDataImpl.java =================================================================== RCS file: /usr/local/cvsroot/apache/jakarta-tomcat-5.0.28-src/jakarta-tomcat- jasper/jasper2/src/share/org/apache/jasper/compiler/PageDataImpl.java,v retrieving revision 1.1 diff -c -r1.1 PageDataImpl.java *** PageDataImpl.java 7 Jun 2005 02:29:52 -0000 1.1 --- PageDataImpl.java 7 Jun 2005 02:33:19 -0000 *************** *** 205,218 **** if (attrs != null) { int len = attrs.getLength(); for (int i=0; i<len; i++) { ! if ("version".equals(attrs.getQName(i))) { continue; } ! rootAttrs.addAttribute(attrs.getURI(i), attrs.getLocalName(i), ! attrs.getQName(i), attrs.getType(i), attrs.getValue(i)); } } } --- 205,221 ---- if (attrs != null) { int len = attrs.getLength(); for (int i=0; i<len; i++) { ! String qName = attrs.getQName(i); ! if ("version".equals(qName)) { continue; } ! if (rootAttrs.getIndex(qName) == -1) { ! rootAttrs.addAttribute(attrs.getURI(i), attrs.getLocalName(i), ! qName, attrs.getType(i), attrs.getValue(i)); + } } } } -- Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]