Author: kkolinko
Date: Sun May 11 16:44:03 2014
New Revision: 1593815

URL: http://svn.apache.org/r1593815
Log:
Ensure TLD parser obtained from cache has correct value of blockExternal
(r1590036 + r1590040 + r1590065)

Modified:
    tomcat/tc6.0.x/trunk/STATUS.txt
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java
    tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml

Modified: tomcat/tc6.0.x/trunk/STATUS.txt
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1593815&r1=1593814&r2=1593815&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Sun May 11 16:44:03 2014
@@ -34,12 +34,6 @@ PATCHES PROPOSED TO BACKPORT:
   +1: markt, kkolinko, fhanik
   -1:
 
-* Ensure TLD parser obtained from cache has correct value of blockExternal
-  (r1590036 + r1590040 + r1590065)
-  https://people.apache.org/~kkolinko/patches/2014-04-26_tc6_TldConfig.patch
-  +1: kkolinko, markt, fhanik
-  -1:
-
 * Followup to r1589635
   To simplify code and align it with TC7 & 8.
   (Discussed in Re:r1589635)

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java?rev=1593815&r1=1593814&r2=1593815&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java Sun 
May 11 16:44:03 2014
@@ -138,30 +138,29 @@ public final class TldConfig  implements
     /**
      * The <code>Digester</code>s available to process tld files.
      */
-    private static Digester[] tldDigesters = new Digester[2];
+    private static Digester[] tldDigesters = new Digester[4];
 
     /**
      * Create (if necessary) and return a Digester configured to process the
      * tld.
      */
-    private static Digester createTldDigester(boolean validation,
+    private static synchronized Digester createTldDigester(boolean validation,
             boolean blockExternal) {
 
-        Digester digester = null;
-        if (!validation) {
-            if (tldDigesters[0] == null) {
-                tldDigesters[0] = DigesterFactory.newDigester(validation,
-                        true, new TldRuleSet(), blockExternal);
-                tldDigesters[0].getParser();
-            }
-            digester = tldDigesters[0];
-        } else {
-            if (tldDigesters[1] == null) {
-                tldDigesters[1] = DigesterFactory.newDigester(validation,
-                        true, new TldRuleSet(), blockExternal);
-                tldDigesters[1].getParser();
-            }
-            digester = tldDigesters[1];
+        Digester digester;
+        int cacheIndex = 0;
+        if (validation) {
+            cacheIndex += 1;
+        }
+        if (blockExternal) {
+            cacheIndex += 2;
+        }
+        digester = tldDigesters[cacheIndex];
+        if (digester == null) {
+            digester = DigesterFactory.newDigester(validation,
+                    true, new TldRuleSet(), blockExternal);
+            digester.getParser();
+            tldDigesters[cacheIndex] = digester;
         }
         return digester;
     }

Modified: tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?rev=1593815&r1=1593814&r2=1593815&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Sun May 11 16:44:03 2014
@@ -95,6 +95,10 @@
         Only create XML parsing objects if required and fix associated 
potential
         memory leak in the default Servlet. (markt)
       </fix>
+      <fix>
+        Ensure that a TLD parser obtained from the cache has the correct value
+        of <code>blockExternal</code>. (markt/kkolinko)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Coyote">



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

Reply via email to