From c0d4375b1e4d8eada2894e40f1806c5fc5efd3ff Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Tue, 11 Jul 2017 16:25:45 +0200 Subject: [PATCH] INT-4311: JdbcLocks: QueryTimeoutException retry JIRA: https://jira.spring.io/browse/INT-4311 * Added `QueryTimeoutException` to retry handling in the `JdbcLockRegistry` Polishing **Cherry-pick to 4.3.x** --- .../integration/jdbc/lock/JdbcLockRegistry.java | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/lock/JdbcLockRegistry.java b/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/lock/JdbcLockRegistry.java index 9f618aaaae..cbe0c54f7a 100644 --- a/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/lock/JdbcLockRegistry.java +++ b/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/lock/JdbcLockRegistry.java @@ -28,6 +28,7 @@ import java.util.concurrent.locks.ReentrantLock; import org.springframework.dao.CannotAcquireLockException; import org.springframework.dao.CannotSerializeTransactionException; import org.springframework.dao.DataAccessResourceFailureException; +import org.springframework.dao.QueryTimeoutException; import org.springframework.integration.support.locks.DefaultLockRegistry; import org.springframework.integration.support.locks.ExpirableLockRegistry; import org.springframework.integration.support.locks.LockRegistry; @@ -45,6 +46,7 @@ import org.springframework.util.Assert; * @author Dave Syer * @author Artem Bilan * @author Vedran Pavic + * @author Kai Zimmermann * * @since 4.3 */ @@ -111,10 +113,7 @@ public class JdbcLockRegistry implements ExpirableLockRegistry { } break; } - catch (CannotSerializeTransactionException e) { - // try again - } - catch (TransactionTimedOutException e) { + catch (CannotSerializeTransactionException | TransactionTimedOutException | QueryTimeoutException e) { // try again } catch (InterruptedException e) { @@ -148,10 +147,7 @@ public class JdbcLockRegistry implements ExpirableLockRegistry { } break; } - catch (CannotSerializeTransactionException e) { - // try again - } - catch (TransactionTimedOutException e) { + catch (CannotSerializeTransactionException | TransactionTimedOutException | QueryTimeoutException e) { // try again } catch (InterruptedException ie) { @@ -195,10 +191,7 @@ public class JdbcLockRegistry implements ExpirableLockRegistry { } return acquired; } - catch (CannotSerializeTransactionException e) { - // try again - } - catch (TransactionTimedOutException e) { + catch (CannotSerializeTransactionException | TransactionTimedOutException | QueryTimeoutException e) { // try again } catch (Exception e) {