This repository was archived by the owner on Jul 4, 2025. It is now read-only.
Release 0.40.17 Spring Boot 3.2.*
Pre-release
Pre-release
What's Changed
- Release 0.40.17 by @cloudcreate-dk in #99
Full Changelog: 0.40.16...0.40.17
- Improved
IOExceptionUtilfurther by using aConcurrentHashMap(to avoidConcurrentModificationException) and defaulting Exception messages that are null to an empty String to avoid potentialNullPointerException's - Improved
IOExceptionUtilfurther by defaulting Root Cause Exception messages that are null to an empty String to avoid potentialNullPointerException's - Introduced
releaseAcquiredLocksInCaseOfIOExceptionsDuringLockConfirmationconfiguration toDBFencedLockManager, which allows a developer/user to control if aFencedLockacquired by a givenFencedLockManagershould be released in case calls toFencedLockStorage#confirmLockInDB(DBFencedLockManager, UnitOfWork, DBFencedLock, OffsetDateTime)fails with an exception whereIOExceptionUtil#isIOException(Throwable)returns true. IfreleaseAcquiredLocksInCaseOfIOExceptionsDuringLockConfirmationis true, thenFencedLock's will be released locally,
otherwise we will retain theFencedLock's as locked. - Added
DBFencedLockManager_MultiNode_ReleaseLockIT(and provider specific subclasses) to test locally acquired locks being released ifreleaseAcquiredLocksInCaseOfIOExceptionsDuringLockConfirmationis true - Improved DBFencedLockManager#confirmAllLocallyAcquiredLocks, DBFencedLockManager#releaseLock, DBFencedLockManager#acquireLockAsync
- Improved PostgresqlFencedLockStorage#updateLockInDB to include the timed-out locks last
lock_last_confirmed_tstimestamp to reduce the risk of two nodes trying to acquire the same lock concurrently - Improved MongoFencedLockStorage#updateLockInDB to include the timed-out locks last
lockLastConfirmedTimestamptimestamp to reduce the risk of two nodes trying to acquire the same lock concurrently - Added
ReleaseAcquiredLocksInCaseOfIOExceptionsDuringLockConfirmationto the FencedLockManager Properties for both the MongoDB and Postgresql SpringBoot starter configuration (default value isfalse) - Expanded documentation related to configuring the fenced lock manager's
release lock in case of IO exceptions during lock confirmationsetting:essentials.fenced-lock-manager.release-acquired-locks-in-case-of-i-o-exceptions-during-lock-confirmation=false
Updated 3rd party dependencies:
- TestContainers 1.20.2
- Mockito 5.14.1