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: [email protected]
For additional commands, e-mail: [email protected]