Chapter 7. Change log
This chapter documents the significant changes in each release.
At the time of this writing, the 6.x release is still in testing.
- 6.0.14, 13 Mar 2025
Fixed #229. The interaction between the “always resolve” feature and namespace URI lookup had the unfortunate consequence of returning the (almost always incorrect) document at the namespace URI as the resource. I’ve adjusted the API so that this is no longer the case. It’s now possible to configure “always resolve” on a per-request basis. This changes an interface so it’s not binary backwards compatible with previous 6.x releases.
Fixed #230. When “always resolve” returned a resource, that URI wasn’t being logged which lead to a confusing log trace.
- 6.0.13, 10 Mar 2025
Changed the API so that an attempt to read a scheme that’s forbidden (by
ResolverFeature.ACCESS_EXTERNAL_ENTITY
orResolverFeature.ACCESS_EXTERNAL_DOCUMENT
) raises anIllegalArgumentException
instead of returningnull
.Generally, the XML Resolver tries to avoid throwing exceptions, but in this case failing to do so opens a security vulnerability. Returning
null
often signals the underlying parser to simply load the resource with the original URI. This circumvents the attempt to limit access. - 5.3.0, 10 Mar 2025
The 5.3.0 release is a maintance patch on the 5.x branch to provide the security fix for foribidden URIs there as well.
- 6.0.12, 24 Jan 2025
Reworked the API to use interfaces for
ResourceRequest
andResourceResponse
. This makes writing a schema handler easier. This is a backwards incompatible change if you were directly accessing those objects. You have to access theResourceRequestImpl
andResourceResponseImpl
instead. On the plus side, the setters are now public on those methods.Added code that attempts to detect a Windows path (C:\path) passed as a catalog or property file name and avoid accidentally constructing a URI with the scheme “C”.
- 6.0.11, 28 Oct 2024
This version introduces a new API for registering a scheme resolver. This will allow a resolver to be configured, for example, to handle custom URI schemes as are sometimes found in products.
- 6.0.10, 22 Sep 2024
Fixed a bug where the resolver didn’t set the system identifier of the source. This closes issue 211.
- 6.0.9, 19 Aug 2024
Fixed a bug where the stream opened to read resolver properties might be unclosed. This closes issue 208.
- 6.0.8, 07 Aug 2024
This release restores the
NamespaceResolver
API. This API is deprecated, but improves backwards compatibility with version 5.x. - 6.0.7, 07 Aug 2024
This release removes two dependencies: the SLF4J API and the Apache HTTP Client API. This has no user-visible changes in the API, but makes version 6.x of the resolver a drop-in replacement for version 5.x in most cases.
- 6.0.6, 06 Aug 2024
The following changes are included:
- Improvements to support for UNC paths
Documents and catalogs that use Windows UNC paths are better supported if the FIX_WINDOWS_SYSTEM_IDENTIFIERS feature is enabled.
- Support for Java 21
The build still produces class (and jar) files that will work with any version of Java back to Java 8. However, the build itself now uses Java 21. This closes issue 173.
- Refactor the SAX entity resolvers
The SAX
EntityResolver
andEntityResolver2
interfaces are now implemented on separate objects. This closes issue 183.- Fix namespace-based lookup in the DOM
The
LSResourceAdapter
API used when resolving documents for the DOM did not correctly handle XML Schema validation. It was failing to lookup based on the namespace. This closes issue 180.- Improved support for concurrency
The catalog lookup code was not sufficiently careful about multi-threaded access. My thanks to JFK-DXML for the patch. This closes issue 182.
- Reworked the FIX_WINDOWS_SYSTEM_IDENTIFIERS feature
This feature now applies irrespective of platform. This will enable Windows documents and catalogs to work correctly even on non-Windows systems. This closes issue 184.
A number of smaller issues (testing and build system issues and issues not expected to be user visible) have also been corrected. See the commit log for more details.
- 6.0.5, 22 Jul 2024
Apparently version 6.0.5 was never released.