Author: markt
Date: Wed Jun  3 22:12:13 2009
New Revision: 781604

URL: http://svn.apache.org/viewvc?rev=781604&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=38197
Take account of jsp:attribute elements when naming tag pools

Modified:
    tomcat/container/tc5.5.x/webapps/docs/changelog.xml
    tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/compiler/Generator.java

Modified: tomcat/container/tc5.5.x/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/webapps/docs/changelog.xml?rev=781604&r1=781603&r2=781604&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/webapps/docs/changelog.xml (original)
+++ tomcat/container/tc5.5.x/webapps/docs/changelog.xml Wed Jun  3 22:12:13 2009
@@ -125,6 +125,10 @@
         (markt)
       </fix>
       <fix>
+        <bug>38197</bug>: Fix tag pooling when tags are used with 
jsp:attribute.
+        (markt)
+      </fix>
+      <fix>
         <bug>45666</bug>: Fix infinite loop on include. Patch provided by Tom
         Wadzinski. (markt)
       </fix>

Modified: 
tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/compiler/Generator.java
URL: 
http://svn.apache.org/viewvc/tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/compiler/Generator.java?rev=781604&r1=781603&r2=781604&view=diff
==============================================================================
--- tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/compiler/Generator.java 
(original)
+++ tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/compiler/Generator.java 
Wed Jun  3 22:12:13 2009
@@ -41,6 +41,7 @@
 import org.apache.jasper.Constants;
 import org.apache.jasper.JasperException;
 import org.apache.jasper.JspCompilationContext;
+import org.apache.jasper.compiler.Node.NamedAttribute;
 import org.apache.jasper.runtime.JspRuntimeLibrary;
 import org.xml.sax.Attributes;
 
@@ -233,6 +234,7 @@
                             n.getPrefix(),
                             n.getLocalName(),
                             n.getAttributes(),
+                            n.getNamedAttributeNodes(),
                             n.hasEmptyBody());
                     n.setTagHandlerPoolName(name);
                     if (!names.contains(name)) {
@@ -252,15 +254,21 @@
                 String prefix,
                 String shortName,
                 Attributes attrs,
+                Node.Nodes namedAttrs,
                 boolean hasEmptyBody) {
                 String poolName = null;
 
                 poolName = "_jspx_tagPool_" + prefix + "_" + shortName;
                 if (attrs != null) {
-                    String[] attrNames = new String[attrs.getLength()];
+                    String[] attrNames =
+                        new String[attrs.getLength() + namedAttrs.size()];
                     for (int i = 0; i < attrNames.length; i++) {
                         attrNames[i] = attrs.getQName(i);
                     }
+                    for (int i = 0; i < namedAttrs.size(); i++) {
+                        attrNames[attrs.getLength() + i] =
+                            ((NamedAttribute) 
namedAttrs.getNode(i)).getQName();
+                    }
                     Arrays.sort(attrNames, Collections.reverseOrder());
                     if (attrNames.length > 0) {
                         poolName = poolName + "&";



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to