[ANNOUNCEMENT]: XML Commons External 1.3.05 now available
The XML Commons team is pleased to announce that version 1.3.05 of XML Commons External is now available. This is a maintenance release of the JAXP 1.3 APIs which were included in Xerces-J 2.7.0 to Xerces-J 2.9.1.
Specifically, the changes introduced in this release are:
* Fixed bugs in SchemaFactory and XPathFactory which caused them to always use the system ClassLoader when searching for META-INF/services files instead of the ClassLoader that would be used to load the concrete factory class.
* Fixed the FactoryFinders so that they no longer catch and ignore ThreadDeath and serious VM errors such as an OutOfMemoryError or a StackOverflowError.
* Fixed the default implementation of DatatypeFactory.createDurationDayTime(long) so that it behaves according to the JAXP specification. Previously it was just delegating to DatatypeFactory.newDuration(long) which has different behaviour than the createDurationDayTime method.
* Corrected the default implementations of DatatypeFactory.newDurationYearMonth() and DatatypeFactory.newDurationDayTime() so that they behave according to the JAXP specification. These methods must reject lexical values which are not valid instances of xs:yearMonthDuration and xs:dayTimeDuration. They were not doing so before.
* Fixed bugs which could cause NullPointerExceptions to be thrown from the default implementations of Duration.getYears(), Duration.getMonths(), etc...
* Fixed bugs in the DatatypeFactory.newDurationDayTime() and DatatypeFactory.newDurationYearMonth() methods where BigIntegers were being created for DatatypeConstants.FIELD_UNDEFINED values instead of assigning the value to null in the Duration.
* Updated each of the JAXP factory classes so that they treat an empty string value for their system property as if it had not been set. Previously the factories would make a futile attempt to create an instance of a class named "" and then fail.
* Implemented minor performance improvements in XMLGregorianCalendar.equals() and Duration.equals(). If the given object is "this" object return true immediately.
* Eliminated an unnecessary conversion to String in Duration.multiply(int).
* Updated the File to URI conversion code in StreamResult so that it is consistent with StreamSource.
* Fixed miscellaneous typographical errors in the Javadocs.