Skip to content
This repository was archived by the owner on Jul 4, 2025. It is now read-only.

Release 0.40.20 Spring Boot 3.2.*

Pre-release
Pre-release

Choose a tag to compare

@cloudcreate-dk cloudcreate-dk released this 23 Jan 16:03
· 88 commits to main since this release
74ad9f3

What's Changed

Full Changelog: 0.40.19...0.40.20

  • Added additional isIOException check to DBFencedLockManager to reduce logging severity in case of IO issues
  • Allowed DBFencedLockManager.acquireLockAsync to be performed without the DBFencedLockManager having been started
  • Added additional isIOException check to MultiTableChangeListener.unlisten to reduce logging severity in case of IO issues
  • Added more IOExceptionUtil.isIOException checks to ListenNotify and MultiTableChangeListener
  • Added a toString method to the class returned from QueuePollingOptimizer.None()
  • Added additional isIOException check to DefaultDurableQueueConsumer to reduce logging severity in case of IO issues
  • Added DurableQueueConsumer.consumerName() method
  • Improved DurableQueueBasedInbox and DurableQueueBasedOutbox logging
  • Added additional isIOException check to PostgresqlDurableSubscriptionRepository.saveResumePoints to reduce logging severity in case of IO issues
  • Added additional logging to PostgresqlDurableQueues.consumeFromQueue and MongoDurableQueues.consumeFromQueue
  • Switched from using ArrayList to using CopyOnWriteArrayList for the list of interceptors
  • Changed DefaultLifecycleManager to use the SmartLifecycle to attempt to start Essentials Lifecycle beans AFTER other resources, such as DataSource, has been started; as well as stop Lifecycle Beans are stopped prior other resources
  • Refined the IOExceptionUtil.isIOException method
      - Generalized many of the special cases into the following logic:
         - Exception or its Root-Cause is a subclass of IOException
         - The Exception's message contains a known error messages across Jdbi, JPA, JDBC, Mongo
         - If the exception's causal chain contains an exception that is either a subclass of ConnectionException or a subclass of MongoSocketException
         - Removed checks for org.jdbi.v3.core.statement.UnableToExecuteStatementException - please report back if this is an issue
      - Added IOExceptionUtilTest in foundation, postgresql-queue and springdata-mongo-queue
  • Refined Exceptions.getRootCause
      - Added ExceptionsTest
  • Added support for QueuedMessage.markForRedeliveryIn(Duration deliveryDelay)
      - Made causeForRetry in DurableQueues.retryMessage optional
  • Clarified RedeliveryPolicy.isPermanentError arguments
  • Clarified MessageDeliveryErrorHandler.isPermanentError arguments
      - Adjusted MessageDeliveryErrorHandler.StopRedeliveryOn's isPermanentError to use the new Exceptions.doesStackTraceContainExceptionOfType method
      - Adjusted MessageDeliveryErrorHandlerBuilder.shouldAlwaysRetryOn logic to use the new Exceptions.doesStackTraceContainExceptionOfType method
  • PostgresqlDurableQueues
      - Switched to use Instant.now() instead of OffsetDateTime.now(Clock.systemUTC())
      - Added null handling for getCauseForRetry()
  • MongoDurableQueues
      - Added null handling for getCauseForRetry()
  • Updated copyright year

Updated 3rd party dependencies:

  • spring-framework 6.1.16
  • log4j 2.24.3
  • junit 5.11.4
  • jackson 2.28.2
  • mockito 5.15.2
  • logback 1.5.16
  • reactor 2023.0.14
  • assertj 3.27.3
  • postgresql 42.7.5
  • netty 4.1.117.Final

Updated maven plugins:

  • dokka 2.0.0
  • maven-project-info-reports-plugin 3.8.0
  • maven-site-plugin 3.21.0
  • maven-javadoc-plugin 3.11.2
  • dependency-check-maven 12.0.1