The Saxon 12.4 maintenance release has been published. This is a maintenance release for Java, C#, C/C++, PHP, and Python that fixes a number of issues reported since the Saxon 12.3 release. (Note: A 12.4.1 maintenance release of SaxonC was published on 1 December 2023.)
Saxon 12.4 was released on 29 November 2023. This release has been uploaded to the usual locations on the Saxonica website, GitHub, and Maven, PyPi, and NuGet. SaxonCS 12.4 is built with .NET 6. This release includes SaxonC and Python releases for the ARM 64 architecture as well as X86-64 architecture.
For a list of the issues resolved in this release, please visit the issue trackers for SaxonJ and SaxonCS or SaxonC on the Saxon support site.
Download products:
- Binaries for PE and EE are available from our download pages.
- SaxonJ-HE is available on the Maven Central repository.
- SaxonJ-HE, PE, and EE can also be found on our experimental Maven repository.
- Python wheels for SaxonC (HE, PE, and EE) are available from PyPI.
- SaxonCS is available on NuGet
- Saxon-HE is available from our open source GitHub repository. The GitHub repository also provides source code for those who need it.
For more details, please consult the documentation.
Partial list of issues resolved
This section is a subset of the complete list of resolved issues. It’s curated to bring attention to the bugs that seem most likely to impact customers.
Issues in SaxonJ and SaxonCS
For a full list, see the issue tracker.
- 5792 ICU spellout numbering
- 5896 Intermittent failure in multi-threading with XSLT
- 5914 Performance regression in SaxonJ 12, searching for context properties
- 5949 A resource loaded via the resolver vs one loaded "directly" is a different source with different options
- 6049 Does XQueryEvaluator for SaxonCS lack the API to set an ErrorReporter?
- 6082 Saxon 12 XQuery: Issue with compile-time error checking
- 6090 Performance regression SaxonCS 12
- 6094 saxon:eval and saxon:expression no longer available with Saxon 12
- 6116 UncheckedXPathException and missing error codes in output with Saxon-HE 12J
- 6117 Transformation using memo functions fails if the source is an XdmDocument.asSource()
- 6128 Unwanted diagnostic output when validating notations
- 6130
No error is reported for
schema-element(*:foo)
- 6131 Unexpected function call triggers cardinality check and error
- 6146 Relative URI resolution in XQuery vs XSLT
- 6147 Incorrect fingerprint for XML_SPACE_TYPE
- 6148 xsi:type and xsi:schemaLocation on same element
- 6149 $connection?close() throws NullPointerException
- 6153 XSD blockDefault effect on complex types
- 6157 xsl:array instruction does not perform fallback processing
- 6158 Errors in xsl:fallback not detected
- 6159 sql:query() throws NullPointerException when retrieving a column with null value
- 6160 Key type in a MapTest cannot be a union type
- 6161 ReportingSingletonIterator.next throws NullPointerException - race condition
- 6165 Spurious template rule ambiguity reported
- 6166 Public fields in a Java instance object cannot be accessed from XSLT
- 6167 Enclosing modes do not work with JIT enabled
- 6168 mode="#all" failures with JIT enabled
- 6176 Failure to test for UncheckedXPathException
- 6186 IndexOutOfBounds exception during stylesheet compilation when package is overridden
- 6196 Functions of wrong arity: arguments → parameters
- 6198 SCM export fails for a schema containing namespace prefixes in an XPath expression
- 6199
SCM export/import sometimes fails for an
xs:alternative
- 6201 configuration file: option for unparsed text URI Resolver
- 6202 Invalid attribute names in configuration files are ignored
- 6207 Filter expression not working properly
- 6210 Format of numbers generated by fn:json-to-xml
- 6211 Saxon return wrong error position in XPath expression
- 6212 Serializer tries to guess doctype from content and fails at it.
- 6215 SQL extension: returning the results of a join query
- 6217 Sliding windows: finished windows not output if windows that started earlier are unfinished
- 6221 Static error in XPath expression supplied to xsl:evaluate
- 6225 Significant performance problem for case insensitive regex matching under high concurrency
- 6226 Race condition initialising UnicodeBlocks class
- 6230 fn:transform doesn't use the resource resolver from the XPathContext
- 6231 Saxon does not recognise function annotations written using Q{uri}local syntax
- 6232 Error message: "An empty sequence is not allowed as the result of a call to map"
- 6236 Expected XPathException but got AssertionError 'No current component'
- 6237 HTTP redirection expects an absolute URI in the location field
- 6238 XPath error information is lost in XSLT
- 6239 Function conversion rules: xs:anyURI to xs:string conversion
- 6249
xsl:evaluate/@context-item
expression is present, but evaluates to empty sequence - 6253 Atomized item type for an array (test CastableAs667)
- 6256 function-name returns an empty sequence for node-name#0, string#0 and more?
- 6257 Gizmo quits after certain errors
- 6258 Repeated failures from unparsed-text() / unparsed-text-available()
- 6260 Operator || and fn:concat are not exactly equivalent
- 6265 NPE in net.sf.saxon.functions.Contains
Issues in SaxonC
For a full list, see the issue tracker.
- 6241: Python 3.12 wheels
- 6195: Sources node objects not deleted in the C++ Schema validation samples
- 6174: ICU localization is currently not supported
- 6162: SaxonC does not accept multiple catalog files
- 6144:
PyXPathProcessor object has no attribute
thisxqptr
- 6143: White space in file path causing an error
- 6118: parseJson API current not supported in SaxonC
- 6109: Give SaxonC XPath API a counterpart to SaxonJ setUnprefixedElementMatchingPolicy
- 6099: Import xslt package currently not available
If you encounter any issues with Saxon 12.4, please report them on our issue tracker.