diff options
Diffstat (limited to 'src/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java')
-rw-r--r-- | src/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java | 46 |
1 files changed, 9 insertions, 37 deletions
diff --git a/src/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java b/src/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java index 172907e..b903305 100644 --- a/src/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java +++ b/src/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java @@ -1,6 +1,5 @@ /* - * reserved comment block - * DO NOT REMOVE OR ALTER! + * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. */ /* * Copyright 2001-2004 The Apache Software Foundation. @@ -26,11 +25,6 @@ package com.sun.org.apache.xalan.internal.xsltc.trax; import java.io.IOException; -import javax.xml.XMLConstants; -import javax.xml.parsers.FactoryConfigurationError; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; import javax.xml.transform.ErrorListener; import javax.xml.transform.Templates; import javax.xml.transform.Transformer; @@ -38,13 +32,13 @@ import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.sax.SAXResult; import com.sun.org.apache.xml.internal.utils.XMLReaderManager; +import jdk.xml.internal.JdkXmlUtils; import org.xml.sax.ContentHandler; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import org.xml.sax.helpers.XMLFilterImpl; -import org.xml.sax.helpers.XMLReaderFactory; /** * skeleton extension of XMLFilterImpl for now. @@ -55,7 +49,7 @@ public class TrAXFilter extends XMLFilterImpl { private Templates _templates; private TransformerImpl _transformer; private TransformerHandlerImpl _transformerHandler; - private boolean _useServicesMechanism = true; + private boolean _overrideDefaultParser; public TrAXFilter(Templates templates) throws TransformerConfigurationException @@ -63,7 +57,7 @@ public class TrAXFilter extends XMLFilterImpl { _templates = templates; _transformer = (TransformerImpl) templates.newTransformer(); _transformerHandler = new TransformerHandlerImpl(_transformer); - _useServicesMechanism = _transformer.useServicesMechnism(); + _overrideDefaultParser = _transformer.overrideDefaultParser(); } public Transformer getTransformer() { @@ -71,36 +65,14 @@ public class TrAXFilter extends XMLFilterImpl { } private void createParent() throws SAXException { - XMLReader parent = null; - try { - SAXParserFactory pfactory = SAXParserFactory.newInstance(); - pfactory.setNamespaceAware(true); - - if (_transformer.isSecureProcessing()) { - try { - pfactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); - } - catch (SAXException e) {} - } - - SAXParser saxparser = pfactory.newSAXParser(); - parent = saxparser.getXMLReader(); - } - catch (ParserConfigurationException e) { - throw new SAXException(e); - } - catch (FactoryConfigurationError e) { - throw new SAXException(e.toString()); - } - - if (parent == null) { - parent = XMLReaderFactory.createXMLReader(); - } + XMLReader parent = JdkXmlUtils.getXMLReader(_overrideDefaultParser, + _transformer.isSecureProcessing()); // make this XMLReader the parent of this filter setParent(parent); } + @Override public void parse (InputSource input) throws SAXException, IOException { XMLReader managedReader = null; @@ -108,7 +80,7 @@ public class TrAXFilter extends XMLFilterImpl { try { if (getParent() == null) { try { - managedReader = XMLReaderManager.getInstance(_useServicesMechanism) + managedReader = XMLReaderManager.getInstance(_overrideDefaultParser) .getXMLReader(); setParent(managedReader); } catch (SAXException e) { @@ -120,7 +92,7 @@ public class TrAXFilter extends XMLFilterImpl { getParent().parse(input); } finally { if (managedReader != null) { - XMLReaderManager.getInstance(_useServicesMechanism).releaseXMLReader(managedReader); + XMLReaderManager.getInstance(_overrideDefaultParser).releaseXMLReader(managedReader); } } } |