Skip to content
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

Choose a tag to compare

@cloudcreate-dk cloudcreate-dk released this 02 Oct 08:45
· 153 commits to main since this release
b07e727

What's Changed

Full Changelog: 0.40.16...0.40.17

  • Improved IOExceptionUtil further by using a ConcurrentHashMap (to avoid ConcurrentModificationException) and defaulting Exception messages that are null to an empty String to avoid potential NullPointerException's
  • Improved IOExceptionUtil further by defaulting Root Cause Exception messages that are null to an empty String to avoid potential NullPointerException's
  • Introduced releaseAcquiredLocksInCaseOfIOExceptionsDuringLockConfirmation configuration to DBFencedLockManager, which allows a developer/user to control if a FencedLock acquired by a given FencedLockManager should be released in case calls to FencedLockStorage#confirmLockInDB(DBFencedLockManager, UnitOfWork, DBFencedLock, OffsetDateTime) fails with an exception where IOExceptionUtil#isIOException(Throwable) returns true. If releaseAcquiredLocksInCaseOfIOExceptionsDuringLockConfirmation is true, then FencedLock's will be released locally,
    otherwise we will retain the FencedLock's as locked.
  • Added DBFencedLockManager_MultiNode_ReleaseLockIT (and provider specific subclasses) to test locally acquired locks being released if releaseAcquiredLocksInCaseOfIOExceptionsDuringLockConfirmation is true
  • Improved DBFencedLockManager#confirmAllLocallyAcquiredLocks, DBFencedLockManager#releaseLock, DBFencedLockManager#acquireLockAsync
  • Improved PostgresqlFencedLockStorage#updateLockInDB to include the timed-out locks last lock_last_confirmed_ts timestamp to reduce the risk of two nodes trying to acquire the same lock concurrently
  • Improved MongoFencedLockStorage#updateLockInDB to include the timed-out locks last lockLastConfirmedTimestamp timestamp to reduce the risk of two nodes trying to acquire the same lock concurrently
  • Added ReleaseAcquiredLocksInCaseOfIOExceptionsDuringLockConfirmation to the FencedLockManager Properties for both the MongoDB and Postgresql SpringBoot starter configuration (default value is false)
  • Expanded documentation related to configuring the fenced lock manager's release lock in case of IO exceptions during lock confirmation setting: 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