JDK-8011653: Upgrade to JAXP 1.5 (original) (raw)

Daniel Fuchs daniel.fuchs at oracle.com
Fri May 3 17:13:29 UTC 2013


Hi Joe,

I am not a JAXP expert - so I've been discovering most of this code as I read it. It would be impossible for me to assess whether there's some setFeature or setProperty missing somewhere for instance. So with my limited knowledge I have only these few remarks:

==========

  1. XalanConstants.java: javadoc ORACLE_FEATURE_SERVICE_MECHANISM:

"instructs the implementation to use service mechanism to find implementation"

That sounds a bit cryptic to my ears. Would something like:

"true: instruct an object to use service mechanism to find a service implementation"

"false: instruct an object to skip service mechanism and use the default implementation for that service"

work better? (disclaimer: I am not a native English speaker.)

==========

2. <http://cr.openjdk.java.net/~joehw/jdk8/8011653/webrev/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java.frames.html>

773 //JAXP 1.5 properties 774 if (propertyId.startsWith(Constants.JAXPAPI_PROPERTY_PREFIX)) { 775 if (propertyId.equals(ACCESS_EXTERNAL_DTD)) 776 { 777 fAccessExternalDTD = (String)value; 778 } 779 }

The first line (startsWith(...) seems useless. When I saw this lines of code - I first thought there was a bug - expecting ACCESS_EXTERNAL_DTD to be a suffix like in the lines just before.

===========

  1. Same remark than 2. with: <http://cr.openjdk.java.net/~joehw/jdk8/8011653/webrev/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java.frames.html>

(lines 1643-1650)

===========

  1. same class as above: what is the story with this "Zephyr feature ignore-external-dtd" ?

    Namely I'm puzzled as to why in one case we check only the Zephyr feature, and in another case we check only the Xerces feature.

    Shouldn't both be checked?

    I mean - are we sure that nobody can call something like:

    PropertyManager propertyManager = ...;
    propertyManager.setFeature(LOAD_EXTERNAL_DTD, false);

==========

-- daniel



More information about the core-libs-dev mailing list