Hi,
I committed a patch in 7u4 b07 that contained a patch done through
7053556. Within the patch, I added a convenient implementation feature
to allow users to skip service mechanism for performance. I realized
that in secure mode, this feature should not override what's set by the
constructor. This change request therefore is to add checks so that the
flag will not be overridden in secure mode. Please consider this is
part of the change within 7u4.
Below are the changes:
Index:
com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java
---
com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java
Base (BASE)
+++
com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java
Locally Modified (Based On LOCAL)
@@ -487,6 +487,8 @@
return;
}
else if
(name.equals(XalanConstants.ORACLE_FEATURE_SERVICE_MECHANISM)) {
+ //in secure mode, let _useServicesMechanism be determined
by the constructor
+ if (!_isSecureMode)
_useServicesMechanism = value;
}
else {
Index: com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java
--- com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java Base
(BASE)
+++ com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java Locally
Modified (Based On LOCAL)
@@ -226,6 +226,8 @@
return;
}
if
(name.equals(XalanConstants.ORACLE_FEATURE_SERVICE_MECHANISM)) {
+ //in secure mode, let _useServicesMechanism be
determined by the constructor
+ if (!_isSecureMode)
_useServicesMechanism = value;
return;
}
Index:
com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java
---
com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java
Base (BASE)
+++
com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java
Locally Modified (Based On LOCAL)
@@ -390,6 +390,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);
Thanks,
Joe