# HG changeset patch # User joehw # Date 1329240359 28800 # Node ID 341a97befe0fee85295b01f54a9d7cf6ab278415 # Parent 3fbd87d50fbf4de3987e36ec5f3e8ce1c383ce3d 7143711: Feature added by 7053556 should not override what's set by the constructor in secure mode Reviewed-by: hawtin diff -r 3fbd87d50fbf -r 341a97befe0f src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java --- a/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java Mon Feb 06 17:11:10 2012 -0800 +++ b/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java Tue Feb 14 09:25:59 2012 -0800 @@ -448,7 +448,9 @@ return; } else if (name.equals(XalanConstants.ORACLE_FEATURE_SERVICE_MECHANISM)) { - _useServicesMechanism = value; + //in secure mode, let _useServicesMechanism be determined by the constructor + if (!_isSecureMode) + _useServicesMechanism = value; } else { // unknown feature diff -r 3fbd87d50fbf -r 341a97befe0f src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java --- a/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java Mon Feb 06 17:11:10 2012 -0800 +++ b/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java Tue Feb 14 09:25:59 2012 -0800 @@ -351,6 +351,10 @@ fSecurityManager = value ? new SecurityManager() : null; fXMLSchemaLoader.setProperty(SECURITY_MANAGER, fSecurityManager); return; + } else if (name.equals(Constants.ORACLE_FEATURE_SERVICE_MECHANISM)) { + //in secure mode, let _useServicesMechanism be determined by the constructor + if (System.getSecurityManager() != null) + return; } try { fXMLSchemaLoader.setFeature(name, value); diff -r 3fbd87d50fbf -r 341a97befe0f src/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java --- a/src/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java Mon Feb 06 17:11:10 2012 -0800 +++ b/src/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java Tue Feb 14 09:25:59 2012 -0800 @@ -186,7 +186,9 @@ return; } if (name.equals(XalanConstants.ORACLE_FEATURE_SERVICE_MECHANISM)) { - _useServicesMechanism = value; + //in secure mode, let _useServicesMechanism be determined by the constructor + if (!_isSecureMode) + _useServicesMechanism = value; return; }