# HG changeset patch # User chegar # Date 1382689966 -3600 # Node ID ef71f2353352ce06eb6a9d8372580c26885b8582 # Parent 390e94b9a852ac59320ec259c975e417f86458bf# Parent 10b3a127b1fca4984b5adcc0e8f32370b9c03835 Merge diff -r 390e94b9a852 -r ef71f2353352 src/com/sun/org/apache/xalan/internal/lib/ExsltStrings.java --- a/src/com/sun/org/apache/xalan/internal/lib/ExsltStrings.java Thu Oct 24 13:43:02 2013 -0700 +++ b/src/com/sun/org/apache/xalan/internal/lib/ExsltStrings.java Fri Oct 25 09:32:46 2013 +0100 @@ -52,6 +52,8 @@ */ public class ExsltStrings extends ExsltBase { + static final String JDK_DEFAULT_DOM = "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"; + /** * The str:align function aligns a string within another string. *

@@ -343,7 +345,11 @@ static { try { - m_doc =DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); + if (System.getSecurityManager() == null) { + m_doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); + } else { + m_doc = DocumentBuilderFactory.newInstance(JDK_DEFAULT_DOM, null).newDocumentBuilder().newDocument(); + } } catch(ParserConfigurationException pce) diff -r 390e94b9a852 -r ef71f2353352 src/com/sun/org/apache/xalan/internal/lib/Extensions.java --- a/src/com/sun/org/apache/xalan/internal/lib/Extensions.java Thu Oct 24 13:43:02 2013 -0700 +++ b/src/com/sun/org/apache/xalan/internal/lib/Extensions.java Fri Oct 25 09:32:46 2013 +0100 @@ -56,6 +56,7 @@ */ public class Extensions { + static final String JDK_DEFAULT_DOM = "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"; /** * Constructor Extensions * @@ -407,7 +408,11 @@ { try { - m_doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); + if (System.getSecurityManager() == null) { + m_doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); + } else { + m_doc = DocumentBuilderFactory.newInstance(JDK_DEFAULT_DOM, null).newDocumentBuilder().newDocument(); + } } catch(ParserConfigurationException pce) diff -r 390e94b9a852 -r ef71f2353352 src/com/sun/org/apache/xml/internal/resolver/CatalogManager.java --- a/src/com/sun/org/apache/xml/internal/resolver/CatalogManager.java Thu Oct 24 13:43:02 2013 -0700 +++ b/src/com/sun/org/apache/xml/internal/resolver/CatalogManager.java Fri Oct 25 09:32:46 2013 +0100 @@ -24,20 +24,17 @@ package com.sun.org.apache.xml.internal.resolver; import com.sun.org.apache.xerces.internal.utils.SecuritySupport; +import com.sun.org.apache.xml.internal.resolver.helpers.BootstrapResolver; +import com.sun.org.apache.xml.internal.resolver.helpers.Debug; import java.io.InputStream; - +import java.net.MalformedURLException; import java.net.URL; -import java.net.MalformedURLException; - import java.util.MissingResourceException; import java.util.PropertyResourceBundle; import java.util.ResourceBundle; import java.util.StringTokenizer; import java.util.Vector; - -import com.sun.org.apache.xml.internal.resolver.helpers.Debug; -import com.sun.org.apache.xml.internal.resolver.helpers.BootstrapResolver; -import com.sun.org.apache.xml.internal.resolver.Catalog; +import sun.reflect.misc.ReflectUtil; /** * CatalogManager provides an interface to the catalog properties. @@ -687,7 +684,7 @@ catalog = new Catalog(); } else { try { - catalog = (Catalog) Class.forName(catalogClassName).newInstance(); + catalog = (Catalog) ReflectUtil.forName(catalogClassName).newInstance(); } catch (ClassNotFoundException cnfe) { debug.message(1,"Catalog class named '" + catalogClassName diff -r 390e94b9a852 -r ef71f2353352 src/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java --- a/src/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java Thu Oct 24 13:43:02 2013 -0700 +++ b/src/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java Fri Oct 25 09:32:46 2013 +0100 @@ -23,24 +23,21 @@ package com.sun.org.apache.xml.internal.resolver.readers; -import java.util.Hashtable; +import com.sun.org.apache.xml.internal.resolver.Catalog; +import com.sun.org.apache.xml.internal.resolver.CatalogException; +import com.sun.org.apache.xml.internal.resolver.helpers.Namespaces; import java.io.IOException; import java.io.InputStream; +import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; -import java.net.MalformedURLException; - +import java.util.Hashtable; +import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.ParserConfigurationException; - -import com.sun.org.apache.xml.internal.resolver.Catalog; -import com.sun.org.apache.xml.internal.resolver.CatalogException; -import com.sun.org.apache.xml.internal.resolver.readers.CatalogReader; -import com.sun.org.apache.xml.internal.resolver.helpers.Namespaces; - +import org.w3c.dom.*; import org.xml.sax.SAXException; -import org.w3c.dom.*; +import sun.reflect.misc.ReflectUtil; /** * A DOM-based CatalogReader. @@ -199,7 +196,7 @@ DOMCatalogParser domParser = null; try { - domParser = (DOMCatalogParser) Class.forName(domParserClass).newInstance(); + domParser = (DOMCatalogParser) ReflectUtil.forName(domParserClass).newInstance(); } catch (ClassNotFoundException cnfe) { catalog.getCatalogManager().debug.message(1, "Cannot load XML Catalog Parser class", domParserClass); throw new CatalogException(CatalogException.UNPARSEABLE); diff -r 390e94b9a852 -r ef71f2353352 src/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java --- a/src/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java Thu Oct 24 13:43:02 2013 -0700 +++ b/src/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java Fri Oct 25 09:32:46 2013 +0100 @@ -23,19 +23,21 @@ package com.sun.org.apache.xml.internal.resolver.readers; -import java.util.Hashtable; +import com.sun.org.apache.xml.internal.resolver.Catalog; +import com.sun.org.apache.xml.internal.resolver.CatalogException; +import com.sun.org.apache.xml.internal.resolver.CatalogManager; +import com.sun.org.apache.xml.internal.resolver.helpers.Debug; +import java.io.FileNotFoundException; import java.io.IOException; -import java.io.FileNotFoundException; import java.io.InputStream; +import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; -import java.net.MalformedURLException; import java.net.UnknownHostException; - +import java.util.Hashtable; import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; -import javax.xml.parsers.SAXParser; - import org.xml.sax.AttributeList; import org.xml.sax.Attributes; import org.xml.sax.ContentHandler; @@ -45,12 +47,7 @@ import org.xml.sax.Locator; import org.xml.sax.Parser; import org.xml.sax.SAXException; - -import com.sun.org.apache.xml.internal.resolver.Catalog; -import com.sun.org.apache.xml.internal.resolver.CatalogManager; -import com.sun.org.apache.xml.internal.resolver.CatalogException; -import com.sun.org.apache.xml.internal.resolver.readers.CatalogReader; -import com.sun.org.apache.xml.internal.resolver.helpers.Debug; +import sun.reflect.misc.ReflectUtil; /** * A SAX-based CatalogReader. @@ -246,7 +243,7 @@ } parser.parse(new InputSource(is), spHandler); } else { - Parser parser = (Parser) Class.forName(parserClass).newInstance(); + Parser parser = (Parser) ReflectUtil.forName(parserClass).newInstance(); parser.setDocumentHandler(this); if (bResolver != null) { parser.setEntityResolver(bResolver); @@ -352,7 +349,7 @@ try { saxParser = (SAXCatalogParser) - Class.forName(saxParserClass).newInstance(); + ReflectUtil.forName(saxParserClass).newInstance(); saxParser.setCatalog(catalog); saxParser.startDocument(); @@ -413,7 +410,7 @@ try { saxParser = (SAXCatalogParser) - Class.forName(saxParserClass).newInstance(); + ReflectUtil.forName(saxParserClass).newInstance(); saxParser.setCatalog(catalog); saxParser.startDocument();