eXist-db 5.2.0 Released
January 23, 2020
Submitted by Adam Retter.
We are very happy to announce that eXist-db 5.2.0 has been released.
5.2.0 is a minor release, and as such should be 100% API compatible with 5.0.0. Whilst this is a fairly conservative release, it fixes two critical issues:
- We fixed a concurrency issue in the reuse of hot Locks which could appear under high-load and cause a transaction to error and abort. This issue is present in all eXist-db 5.x.x versions prior to 5.2.0, but not 4.7.1. This issue could cause corruption in a <5.2.0 system.
- We fixed a live-lock in the Transaction Manager which could appear under high-load and prevent a transaction from completing. This issue is present in all eXist-db 5.x.x version prior to 5.2.0, but not 4.7.1. This issue could cause a <5.2.0 system to eventually lock-up.
Features
- Implemented the XQuery function
array:put
#3092 - Implemented the XQuery function
fn:json-to-xml
#3093 - Facility to have Document locks use the same hierarchical path based locking as Collection locks #3208
- Extended hierarchical facets to accept multiple values passed in via an array #3182
- Improved the performance of
FastStringBuffer
#3186 - Implemented
isOpen()
andclose()
methods on XML:DB API'sRemoteCollection
#2881 - Improved log messages when disk space is exhausted #3127
Bugfixes
- Fixed a livelock in the Transaction Manager #3156
- Fixed a Concurrency Issue in Lock Reuse #3219
- Fixed an issue where the wrong Lucene Index Config could of been selected #3142
- Fixed an NPE which prevented the Content Extraction Module from functioning #3206
- Fixed opening the Statistics Index #3201
- Fixed a Cast Exception in
fn:subsequence
on sequences with atomic values #3199 - Fixed a memory-leak when shutting down an instance; occurred when there were multiple instances #3171
- Removed unused options in
conf.xml
#3127 - Removed extraneous logging of stack traces #3140
- Fixed log level of failed index lookups #3200
- Many small code improvements #3178
Updated Libraries
- Apache Commons Codec 1.14 #3189
- Apache HTTP Components 4.5.11 #3213
- Apache Log4j 2.13.0 #3162
- Apache Tika 1.23 #3215
- Apache Xerces 2.12.1 #3218
- Caffeine 2.8.1 #3204
- Eclipse Jetty 9.4.26.v20200117 #3211
- EXPath HTTP Client 1.2.2 #3216
- EXQuery 0.1.35 #3198
- Jackson 2.10.2 #3188
- jcTools 3.0.0 #3187
- jline 3.13.3 #3190
- jUnit 4.13 #3180
- lz4-java 1.7.1 #3212
- rsyntaxtextarea 3.0.8 #3181
- Saxon-HE 9.9.1-6 #3150
- Slf4j API 1.7.30
Backwards Compatibility
eXist-db 5.2.0 is binary compatible with previous eXist-db 5.x.x versions back to 5.0.0-RC6.
Regardless, before upgrading to this version of eXist-db, it is strongly recommended to perform a full backup and restore. Users who are upgrading should always consult the Upgrading Guide in the documentation. For details of backwards compatibility with versions of eXist-db prior to 5.0.0-RC6, please see the Backwards Compatibility details of 5.0.0-RC6.
Downloading this Version
- eXist-db v5.2.0 is available for download from Bintray.
- Docker images are available from eXist-db's DockerHub.
- Maven artifacts are available from Maven Central.
- Mac users of the Homebrew package repository may acquire eXist 5.2.0 directly from there via the
exist-db
cask.