This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch camel-2.25.x in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-2.25.x by this push: new 91d0627 [CAMEL-7810] Use OptimisticLockingException for version conflicts (#3852) 91d0627 is described below commit 91d0627823d8ca10a9df2f6fa5c88e005ab67885 Author: Federico Valeri <fval...@users.noreply.github.com> AuthorDate: Fri May 22 14:52:07 2020 +0200 [CAMEL-7810] Use OptimisticLockingException for version conflicts (#3852) Co-authored-by: Federico Valeri <fvaleri@localhost> --- .../aggregate/jdbc/DefaultJdbcOptimisticLockingExceptionMapper.java | 4 ++++ .../camel/processor/aggregate/jdbc/JdbcAggregationRepositoryNew.java | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/DefaultJdbcOptimisticLockingExceptionMapper.java b/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/DefaultJdbcOptimisticLockingExceptionMapper.java index e6903b1..aa22f8c 100644 --- a/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/DefaultJdbcOptimisticLockingExceptionMapper.java +++ b/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/DefaultJdbcOptimisticLockingExceptionMapper.java @@ -21,6 +21,7 @@ import java.util.Iterator; import java.util.LinkedHashSet; import java.util.Set; +import org.apache.camel.spi.OptimisticLockingAggregationRepository.OptimisticLockingException; import org.apache.camel.util.ObjectHelper; import org.springframework.dao.DataIntegrityViolationException; @@ -47,6 +48,9 @@ public class DefaultJdbcOptimisticLockingExceptionMapper implements JdbcOptimist Iterator<Throwable> it = ObjectHelper.createExceptionIterator(cause); while (it.hasNext()) { Throwable throwable = it.next(); + if (throwable instanceof OptimisticLockingException) { + return true; + } // if its a SQL exception if (throwable instanceof SQLException) { SQLException se = (SQLException) throwable; diff --git a/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/JdbcAggregationRepositoryNew.java b/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/JdbcAggregationRepositoryNew.java index d559af8..31fe7c0 100644 --- a/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/JdbcAggregationRepositoryNew.java +++ b/components/camel-sql/src/main/java/org/apache/camel/processor/aggregate/jdbc/JdbcAggregationRepositoryNew.java @@ -31,6 +31,7 @@ import javax.sql.DataSource; import org.apache.camel.CamelContext; import org.apache.camel.Exchange; import org.apache.camel.spi.OptimisticLockingAggregationRepository; +import org.apache.camel.spi.OptimisticLockingAggregationRepository.OptimisticLockingException; import org.apache.camel.spi.RecoverableAggregationRepository; import org.apache.camel.support.ServiceSupport; import org.apache.camel.util.ObjectHelper; @@ -310,7 +311,8 @@ public class JdbcAggregationRepositoryNew extends ServiceSupport implements Reco if (updateCount == 1) { return updateCount; } else { - throw new RuntimeException(String.format("Stale version: error updating record with key %s and version %s", key, version)); + // Found stale version while updating record + throw new OptimisticLockingException(); } }