Author: jboynes
Date: Mon Dec  1 02:08:41 2014
New Revision: 1642617

URL: http://svn.apache.org/r1642617
Log:
JSTL TLVs need different namespace awareness
Added:
    
tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PageParser.java
      - copied, changed from r1642613, 
tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ParserUtil.java
Removed:
    
tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ParserUtil.java
Modified:
    
tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PermittedTaglibsTLV.java
    
tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ScriptFreeTLV.java

Copied: 
tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PageParser.java
 (from r1642613, 
tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ParserUtil.java)
URL: 
http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PageParser.java?p2=tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PageParser.java&p1=tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ParserUtil.java&r1=1642613&r2=1642617&rev=1642617&view=diff
==============================================================================
--- 
tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ParserUtil.java
 (original)
+++ 
tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PageParser.java
 Mon Dec  1 02:08:41 2014
@@ -35,14 +35,15 @@ import org.xml.sax.helpers.DefaultHandle
 /**
  * Support class for working with the SAX Parser.
  */
-class ParserUtil {
+class PageParser {
 
-    private static final SAXParserFactory PARSER_FACTORY;
-    static {
-        PARSER_FACTORY = AccessController.doPrivileged(new 
PrivilegedAction<SAXParserFactory>() {
+    private final SAXParserFactory parserFactory;
+
+    PageParser(boolean namespaceAware) {
+        parserFactory = AccessController.doPrivileged(new 
PrivilegedAction<SAXParserFactory>() {
             public SAXParserFactory run() {
                 ClassLoader original = 
Thread.currentThread().getContextClassLoader();
-                ClassLoader ours = ParserUtil.class.getClassLoader();
+                ClassLoader ours = PageParser.class.getClassLoader();
                 try {
                     if (original != ours) {
                         Thread.currentThread().setContextClassLoader(ours);
@@ -56,8 +57,9 @@ class ParserUtil {
             }
         });
         try {
-            PARSER_FACTORY.setValidating(true);
-            PARSER_FACTORY.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, 
true);
+            parserFactory.setNamespaceAware(namespaceAware);
+            parserFactory.setValidating(false);
+            parserFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, 
true);
         } catch (ParserConfigurationException e) {
             throw new ExceptionInInitializerError(e);
         } catch (SAXNotRecognizedException e) {
@@ -67,11 +69,8 @@ class ParserUtil {
         }
     }
 
-    private ParserUtil() {
-    }
-
-    static void parse(PageData pageData, DefaultHandler handler) throws 
ParserConfigurationException, SAXException, IOException {
-        SAXParser parser = PARSER_FACTORY.newSAXParser();
+    void parse(PageData pageData, DefaultHandler handler) throws 
ParserConfigurationException, SAXException, IOException {
+        SAXParser parser = parserFactory.newSAXParser();
         InputStream is = pageData.getInputStream();
         try {
             parser.parse(is, handler);

Modified: 
tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PermittedTaglibsTLV.java
URL: 
http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PermittedTaglibsTLV.java?rev=1642617&r1=1642616&r2=1642617&view=diff
==============================================================================
--- 
tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PermittedTaglibsTLV.java
 (original)
+++ 
tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PermittedTaglibsTLV.java
 Mon Dec  1 02:08:41 2014
@@ -17,7 +17,6 @@
 package javax.servlet.jsp.jstl.tlv;
 
 import java.io.IOException;
-import java.io.InputStream;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.StringTokenizer;
@@ -26,8 +25,6 @@ import javax.servlet.jsp.tagext.PageData
 import javax.servlet.jsp.tagext.TagLibraryValidator;
 import javax.servlet.jsp.tagext.ValidationMessage;
 import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
 
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
@@ -52,17 +49,18 @@ public class PermittedTaglibsTLV extends
     // Constants
 
     // parameter names
-    private final String PERMITTED_TAGLIBS_PARAM = "permittedTaglibs";
+    private static final String PERMITTED_TAGLIBS_PARAM = "permittedTaglibs";
 
     // URI for "<jsp:root>" element
-    private final String JSP_ROOT_URI = "http://java.sun.com/JSP/Page";;
+    private static final String JSP_ROOT_URI = "http://java.sun.com/JSP/Page";;
 
     // local name of "<jsp:root>" element
-    private final String JSP_ROOT_NAME = "root";
+    private static final String JSP_ROOT_NAME = "root";
 
     // QName for "<jsp:root>" element
-    private final String JSP_ROOT_QN = "jsp:root";
+    private static final String JSP_ROOT_QN = "jsp:root";
 
+    private static final PageParser parser = new PageParser(false);
 
     //*********************************************************************
     // Validation and configuration state (protected)
@@ -104,7 +102,7 @@ public class PermittedTaglibsTLV extends
             DefaultHandler h = new PermittedTaglibsHandler();
 
             // parse the page
-            ParserUtil.parse(page, h);
+            parser.parse(page, h);
 
             if (failed) {
                 return vmFromString(

Modified: 
tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ScriptFreeTLV.java
URL: 
http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ScriptFreeTLV.java?rev=1642617&r1=1642616&r2=1642617&view=diff
==============================================================================
--- 
tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ScriptFreeTLV.java
 (original)
+++ 
tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ScriptFreeTLV.java
 Mon Dec  1 02:08:41 2014
@@ -17,14 +17,12 @@
 package javax.servlet.jsp.jstl.tlv;
 
 import java.io.IOException;
-import java.io.InputStream;
 import java.util.Map;
 
 import javax.servlet.jsp.tagext.PageData;
 import javax.servlet.jsp.tagext.TagLibraryValidator;
 import javax.servlet.jsp.tagext.ValidationMessage;
 import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParserFactory;
 
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
@@ -53,22 +51,13 @@ import org.xml.sax.helpers.DefaultHandle
  * @author Shawn Bayern (minor changes)
  */
 public class ScriptFreeTLV extends TagLibraryValidator {
+
+    private static final PageParser parser = new PageParser(true);
+
     private boolean allowDeclarations = false;
     private boolean allowScriptlets = false;
     private boolean allowExpressions = false;
     private boolean allowRTExpressions = false;
-    private SAXParserFactory factory;
-
-    /**
-     * Constructs a new validator instance.
-     * Initializes the parser factory to create non-validating, namespace-aware
-     * SAX parsers.
-     */
-    public ScriptFreeTLV() {
-        factory = SAXParserFactory.newInstance();
-        factory.setValidating(false);
-        factory.setNamespaceAware(true);
-    }
 
     /**
      * Sets the values of the initialization parameters, as supplied in the 
TLD.
@@ -106,7 +95,7 @@ public class ScriptFreeTLV extends TagLi
     public ValidationMessage[] validate(String prefix, String uri, PageData 
page) {
         try {
             MyContentHandler handler = new MyContentHandler();
-            ParserUtil.parse(page, handler);
+            parser.parse(page, handler);
             return handler.reportResults();
         } catch (ParserConfigurationException e) {
             return vmFromString(e.toString());
@@ -191,7 +180,7 @@ public class ScriptFreeTLV extends TagLi
         public ValidationMessage[] reportResults() {
             if (declarationCount + scriptletCount + expressionCount
                     + rtExpressionCount > 0) {
-                StringBuffer results = new StringBuffer("JSP page contains ");
+                StringBuilder results = new StringBuilder("JSP page contains 
");
                 boolean first = true;
                 if (declarationCount > 0) {
                     results.append(Integer.toString(declarationCount));



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

Reply via email to