Mercurial > hg > openjdk > jdk6 > jaxp
changeset 76:0031070f98b0
OPENJDK6-9: Backport part of "6657673: Issues with JAXP" which applies after 7133220.
Reviewed-by: omajid
author | andrew |
---|---|
date | Mon, 15 Jul 2013 22:04:09 +0100 |
parents | 3527dd1d8d99 |
children | d23a262afc5d |
files | drop_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java drop_included/jaxp_src/src/javax/xml/transform/FactoryFinder.java |
diffstat | 2 files changed, 18 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/drop_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java Mon Jul 15 22:00:55 2013 +0100 +++ b/drop_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java Mon Jul 15 22:04:09 2013 +0100 @@ -42,7 +42,7 @@ * @author Huizhe.Wang@oracle.com */ class FactoryFinder { - + private static final String DEFAULT_PACKAGE = "com.sun.org.apache.xerces.internal"; /** * Internal debug flag. */ @@ -166,6 +166,14 @@ static Object newInstance(String className, ClassLoader cl, boolean doFallback, boolean useBSClsLoader) throws ConfigurationError { + // make sure we have access to restricted packages + if (System.getSecurityManager() != null) { + if (className != null && className.startsWith(DEFAULT_PACKAGE)) { + cl = null; + useBSClsLoader = true; + } + } + try { Class providerClass = getProviderClass(className, cl, doFallback, useBSClsLoader); Object instance = providerClass.newInstance();
--- a/drop_included/jaxp_src/src/javax/xml/transform/FactoryFinder.java Mon Jul 15 22:00:55 2013 +0100 +++ b/drop_included/jaxp_src/src/javax/xml/transform/FactoryFinder.java Mon Jul 15 22:04:09 2013 +0100 @@ -42,6 +42,7 @@ * @author Huizhe.Wang@oracle.com */ class FactoryFinder { + private static final String DEFAULT_PACKAGE = "com.sun.org.apache.xalan.internal."; /** * Internal debug flag. @@ -166,6 +167,14 @@ static Object newInstance(String className, ClassLoader cl, boolean doFallback, boolean useBSClsLoader) throws ConfigurationError { + // make sure we have access to restricted packages + if (System.getSecurityManager() != null) { + if (className != null && className.startsWith(DEFAULT_PACKAGE)) { + cl = null; + useBSClsLoader = true; + } + } + try { Class providerClass = getProviderClass(className, cl, doFallback, useBSClsLoader); Object instance = providerClass.newInstance();