Last Ant Test Failure with JDK9 - JAXP Secure Processing and XSLT Extensions

Stefan Bodewig bodewig at apache.org
Thu Sep 1 14:37:28 UTC 2016


On 2016-08-31, Joe Wang wrote:

> On 8/30/16, 9:34 AM, Stefan Bodewig wrote:

>> On 2016-08-29, Joe Wang wrote:

>>> If you are using the built-in extension functions, try turning on the
>>> following feature:
>>>      private static final String ENABLE_EXTENSION_FUNCTIONS =
>>> "http://www.oracle.com/xml/jaxp/properties/enableExtensionFunctions";
>>>      tf.setFeature(ENABLE_EXTENSION_FUNCTIONS, true);
>> This is not supported by Xalan's TransformerFactoryImpl:

> True, this is an impl-only feature. But Xalan doesn't need it anyways,
> you may check the factory instance and skip it if it's Xalan.

Thanks, you're comment made me take a third look at the test-case in
question. I was confused by the setup and overlooked that we explicitly
forced the use of the JDK's factory for just a single test.

By selectively setting both features I can get the test to pass and am
able to use the redirect extension of a version of Xalan on the
classloader I specify.

I'll need to add suppport for setting features on the TransformerFactory
to Ant's <xslt> task as I'd prefer to not hard-code the features into
the task - and enable it for <junitreport> be default.

>> When removing Xalan from the classpath and using the JDK's own
>> TransformerFactory I get

>> ,----
>> | Error! Use of the extension element 'redirect' is not allowed when the
>> | secure processing feature is set to true.
>> `----

>> even with the feature enabled. So "redirect" -
>> i.e. xmlns:redirect="http://xml.apache.org/xalan/redirect" - which I
>> assumed to be "built-in" for the JDK's fork of Xalan as well - doesn't
>> seem to get through with just that.

> I'll get this fixed in the next 1 or 2
> build. (https://bugs.openjdk.java.net/browse/JDK-8165116)

This is great and will simplify things a lot.

Many thanks

     Stefan


More information about the core-libs-dev mailing list