From 1f73e9a005c65350753fce9e796bce852c36f206 Mon Sep 17 00:00:00 2001 From: Brett Wooldridge Date: Mon, 15 Jan 2018 21:14:41 +0900 Subject: [PATCH] Fixes #1060 Support experimental throw-if-suspended functionality. --- .../java/com/zaxxer/hikari/util/SuspendResumeLock.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zaxxer/hikari/util/SuspendResumeLock.java b/src/main/java/com/zaxxer/hikari/util/SuspendResumeLock.java index 0be8113f..eea03bc8 100644 --- a/src/main/java/com/zaxxer/hikari/util/SuspendResumeLock.java +++ b/src/main/java/com/zaxxer/hikari/util/SuspendResumeLock.java @@ -16,6 +16,8 @@ package com.zaxxer.hikari.util; +import java.sql.SQLException; +import java.sql.SQLTransientException; import java.util.concurrent.Semaphore; /** @@ -33,7 +35,7 @@ public class SuspendResumeLock @Override public void release() {} - + @Override public void suspend() {} @@ -57,8 +59,12 @@ public class SuspendResumeLock acquisitionSemaphore = (createSemaphore ? new Semaphore(MAX_PERMITS, true) : null); } - public void acquire() + public void acquire() throws SQLException { + if (Boolean.getBoolean("com.zaxxer.hikari.throwIfSuspended")) { + throw new SQLTransientException("The pool is currently suspended and configured to throw exceptions upon acquisition"); + } + acquisitionSemaphore.acquireUninterruptibly(); }