src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java

Print this page




 507      */
 508     @Override
 509     public void setFeature(String name, boolean value)
 510         throws TransformerConfigurationException {
 511 
 512         // feature name cannot be null
 513         if (name == null) {
 514             ErrorMsg err = new ErrorMsg(ErrorMsg.JAXP_SET_FEATURE_NULL_NAME);
 515             throw new NullPointerException(err.toString());
 516         }
 517         // secure processing?
 518         else if (name.equals(XMLConstants.FEATURE_SECURE_PROCESSING)) {
 519             if ((_isSecureMode) && (!value)) {
 520                 ErrorMsg err = new ErrorMsg(ErrorMsg.JAXP_SECUREPROCESSING_FEATURE);
 521                 throw new TransformerConfigurationException(err.toString());
 522             }
 523             _isNotSecureProcessing = !value;
 524             _xmlSecurityManager.setSecureProcessing(value);
 525 
 526             // set external access restriction when FSP is explicitly set
 527             if (value && XalanConstants.IS_JDK8_OR_ABOVE) {
 528                 _xmlSecurityPropertyMgr.setValue(Property.ACCESS_EXTERNAL_DTD,
 529                         State.FSP, XalanConstants.EXTERNAL_ACCESS_DEFAULT_FSP);
 530                 _xmlSecurityPropertyMgr.setValue(Property.ACCESS_EXTERNAL_STYLESHEET,
 531                         State.FSP, XalanConstants.EXTERNAL_ACCESS_DEFAULT_FSP);
 532                 _accessExternalDTD = _xmlSecurityPropertyMgr.getValue(
 533                         Property.ACCESS_EXTERNAL_DTD);
 534                 _accessExternalStylesheet = _xmlSecurityPropertyMgr.getValue(
 535                         Property.ACCESS_EXTERNAL_STYLESHEET);
 536             }
 537 
 538             if (value && _featureManager != null) {
 539                 _featureManager.setValue(FeatureManager.Feature.ORACLE_ENABLE_EXTENSION_FUNCTION,
 540                         FeaturePropertyBase.State.FSP, XalanConstants.FEATURE_FALSE);
 541             }
 542             return;
 543         }
 544         else if (name.equals(XalanConstants.ORACLE_FEATURE_SERVICE_MECHANISM)) {
 545             //in secure mode, let _useServicesMechanism be determined by the constructor
 546             if (!_isSecureMode)
 547                 _useServicesMechanism = value;
 548         }
 549         else {
 550             if (_featureManager != null &&
 551                     _featureManager.setValue(name, State.APIPROPERTY, value)) {
 552                 return;
 553             }
 554 
 555             // unknown feature
 556             ErrorMsg err = new ErrorMsg(ErrorMsg.JAXP_UNSUPPORTED_FEATURE, name);
 557             throw new TransformerConfigurationException(err.toString());
 558         }
 559     }
 560 
 561     /**
 562      * javax.xml.transform.sax.TransformerFactory implementation.




 507      */
 508     @Override
 509     public void setFeature(String name, boolean value)
 510         throws TransformerConfigurationException {
 511 
 512         // feature name cannot be null
 513         if (name == null) {
 514             ErrorMsg err = new ErrorMsg(ErrorMsg.JAXP_SET_FEATURE_NULL_NAME);
 515             throw new NullPointerException(err.toString());
 516         }
 517         // secure processing?
 518         else if (name.equals(XMLConstants.FEATURE_SECURE_PROCESSING)) {
 519             if ((_isSecureMode) && (!value)) {
 520                 ErrorMsg err = new ErrorMsg(ErrorMsg.JAXP_SECUREPROCESSING_FEATURE);
 521                 throw new TransformerConfigurationException(err.toString());
 522             }
 523             _isNotSecureProcessing = !value;
 524             _xmlSecurityManager.setSecureProcessing(value);
 525 
 526             // set external access restriction when FSP is explicitly set
 527             if (value) {
 528                 _xmlSecurityPropertyMgr.setValue(Property.ACCESS_EXTERNAL_DTD,
 529                         State.FSP, XalanConstants.EXTERNAL_ACCESS_DEFAULT_FSP);
 530                 _xmlSecurityPropertyMgr.setValue(Property.ACCESS_EXTERNAL_STYLESHEET,
 531                         State.FSP, XalanConstants.EXTERNAL_ACCESS_DEFAULT_FSP);
 532                 _accessExternalDTD = _xmlSecurityPropertyMgr.getValue(
 533                         Property.ACCESS_EXTERNAL_DTD);
 534                 _accessExternalStylesheet = _xmlSecurityPropertyMgr.getValue(
 535                         Property.ACCESS_EXTERNAL_STYLESHEET);
 536             }
 537 
 538             if (value && _featureManager != null) {
 539                 _featureManager.setValue(FeatureManager.Feature.ORACLE_ENABLE_EXTENSION_FUNCTION,
 540                         FeaturePropertyBase.State.FSP, XalanConstants.FEATURE_FALSE);
 541             }

 542         }
 543         else if (name.equals(XalanConstants.ORACLE_FEATURE_SERVICE_MECHANISM)) {
 544             //in secure mode, let _useServicesMechanism be determined by the constructor
 545             if (!_isSecureMode)
 546                 _useServicesMechanism = value;
 547         }
 548         else {
 549             if (_featureManager != null &&
 550                     _featureManager.setValue(name, State.APIPROPERTY, value)) {
 551                 return;
 552             }
 553 
 554             // unknown feature
 555             ErrorMsg err = new ErrorMsg(ErrorMsg.JAXP_UNSUPPORTED_FEATURE, name);
 556             throw new TransformerConfigurationException(err.toString());
 557         }
 558     }
 559 
 560     /**
 561      * javax.xml.transform.sax.TransformerFactory implementation.