From 11aab3db51713fc19e500cb0a1a5becb09c8915a Mon Sep 17 00:00:00 2001 From: Brett Wooldridge Date: Wed, 22 Apr 2015 09:42:03 +0900 Subject: [PATCH 1/5] Escew fastpath if there are pending threads waiting to avoid starvation of those threads. --- .../com/zaxxer/hikari/util/ConcurrentBag.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/hikaricp-common/src/main/java/com/zaxxer/hikari/util/ConcurrentBag.java b/hikaricp-common/src/main/java/com/zaxxer/hikari/util/ConcurrentBag.java index 951aac57..4ea0be10 100644 --- a/hikaricp-common/src/main/java/com/zaxxer/hikari/util/ConcurrentBag.java +++ b/hikaricp-common/src/main/java/com/zaxxer/hikari/util/ConcurrentBag.java @@ -95,16 +95,18 @@ public class ConcurrentBag @SuppressWarnings("unchecked") public T borrow(long timeout, final TimeUnit timeUnit) throws InterruptedException { - // Try the thread-local list first - final ArrayList> list = threadList.get(); - if (list == null) { - threadList.set(new ArrayList>(16)); - } - else { - for (int i = list.size() - 1; i >= 0; i--) { - final IConcurrentBagEntry bagEntry = list.remove(i).get(); - if (bagEntry != null && bagEntry.state().compareAndSet(STATE_NOT_IN_USE, STATE_IN_USE)) { - return (T) bagEntry; + if (!synchronizer.hasQueuedThreads()) { + // Try the thread-local list first + final ArrayList> list = threadList.get(); + if (list == null) { + threadList.set(new ArrayList>(16)); + } + else { + for (int i = list.size() - 1; i >= 0; i--) { + final IConcurrentBagEntry bagEntry = list.remove(i).get(); + if (bagEntry != null && bagEntry.state().compareAndSet(STATE_NOT_IN_USE, STATE_IN_USE)) { + return (T) bagEntry; + } } } } From b6a08c1d999874449d1f367b929d242026cc1dca Mon Sep 17 00:00:00 2001 From: Brett Wooldridge Date: Wed, 22 Apr 2015 09:52:48 +0900 Subject: [PATCH 2/5] Update change log. --- CHANGES | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/CHANGES b/CHANGES index 117c7413..9eae5f1c 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,20 @@ HikariCP Changes +Changes in 2.3.7 + + * Try harder at resolving the driver by various means when both driverClassName and jdbcUrl + have been specified. + + * Allow a specifically set DataSource instance to override other settings such as jdbcUrl, + dataSourceClassName, or driverClassName. + + * Fixed issue where, in the case of a driver-based configuration (jdbcUrl), we were not + initialising the network timeout Executor. + + * Fixed race condition uncovered during load-testing in which the connections in the pool + can spike to the maximum pool size when many connections reach their maxLifetime at the + same time. + Changes in 2.3.6 * Allow explicit definition of driverClassName to override DriverManager.getDriver(url) From 91990500d1fe29581de4b9119028e430922bcb3b Mon Sep 17 00:00:00 2001 From: Brett Wooldridge Date: Wed, 22 Apr 2015 09:54:57 +0900 Subject: [PATCH 3/5] [maven-release-plugin] prepare release HikariCP-2.3.7 --- hikaricp-java6/pom.xml | 4 ++-- hikaricp/pom.xml | 4 ++-- pom.xml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/hikaricp-java6/pom.xml b/hikaricp-java6/pom.xml index 224550a7..a759a205 100644 --- a/hikaricp-java6/pom.xml +++ b/hikaricp-java6/pom.xml @@ -20,7 +20,7 @@ scm:git:git@github.com:brettwooldridge/HikariCP.git scm:git:git@github.com:brettwooldridge/HikariCP.git git@github.com:brettwooldridge/HikariCP.git - HikariCP-2.3.2 + HikariCP-2.3.7 @@ -47,7 +47,7 @@ com.zaxxer HikariCP-parent - 2.3.7-SNAPSHOT + 2.3.7 diff --git a/hikaricp/pom.xml b/hikaricp/pom.xml index 63bb83e4..997c63bb 100644 --- a/hikaricp/pom.xml +++ b/hikaricp/pom.xml @@ -20,7 +20,7 @@ scm:git:git@github.com:brettwooldridge/HikariCP.git scm:git:git@github.com:brettwooldridge/HikariCP.git git@github.com:brettwooldridge/HikariCP.git - HikariCP-2.3.2 + HikariCP-2.3.7 @@ -47,7 +47,7 @@ com.zaxxer HikariCP-parent - 2.3.7-SNAPSHOT + 2.3.7 diff --git a/pom.xml b/pom.xml index 7d1a679a..633b803d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.zaxxer HikariCP-parent - 2.3.7-SNAPSHOT + 2.3.7 pom HikariCP-parent @@ -20,7 +20,7 @@ scm:git:git@github.com:brettwooldridge/HikariCP.git scm:git:git@github.com:brettwooldridge/HikariCP.git git@github.com:brettwooldridge/HikariCP.git - HikariCP-2.3.2 + HikariCP-2.3.7 From 9591e6b46bb4c2d5e38e829a4a76c947f53e9af5 Mon Sep 17 00:00:00 2001 From: Brett Wooldridge Date: Wed, 22 Apr 2015 09:55:04 +0900 Subject: [PATCH 4/5] [maven-release-plugin] prepare for next development iteration --- hikaricp-java6/pom.xml | 4 ++-- hikaricp/pom.xml | 4 ++-- pom.xml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/hikaricp-java6/pom.xml b/hikaricp-java6/pom.xml index a759a205..c921cc5c 100644 --- a/hikaricp-java6/pom.xml +++ b/hikaricp-java6/pom.xml @@ -20,7 +20,7 @@ scm:git:git@github.com:brettwooldridge/HikariCP.git scm:git:git@github.com:brettwooldridge/HikariCP.git git@github.com:brettwooldridge/HikariCP.git - HikariCP-2.3.7 + HikariCP-2.3.2 @@ -47,7 +47,7 @@ com.zaxxer HikariCP-parent - 2.3.7 + 2.3.8-SNAPSHOT diff --git a/hikaricp/pom.xml b/hikaricp/pom.xml index 997c63bb..da1c89d8 100644 --- a/hikaricp/pom.xml +++ b/hikaricp/pom.xml @@ -20,7 +20,7 @@ scm:git:git@github.com:brettwooldridge/HikariCP.git scm:git:git@github.com:brettwooldridge/HikariCP.git git@github.com:brettwooldridge/HikariCP.git - HikariCP-2.3.7 + HikariCP-2.3.2 @@ -47,7 +47,7 @@ com.zaxxer HikariCP-parent - 2.3.7 + 2.3.8-SNAPSHOT diff --git a/pom.xml b/pom.xml index 633b803d..2b1bf6c5 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.zaxxer HikariCP-parent - 2.3.7 + 2.3.8-SNAPSHOT pom HikariCP-parent @@ -20,7 +20,7 @@ scm:git:git@github.com:brettwooldridge/HikariCP.git scm:git:git@github.com:brettwooldridge/HikariCP.git git@github.com:brettwooldridge/HikariCP.git - HikariCP-2.3.7 + HikariCP-2.3.2 From ea52a962fe6bee20620d1a8262a7465b786b1133 Mon Sep 17 00:00:00 2001 From: Brett Wooldridge Date: Wed, 22 Apr 2015 18:04:31 +0900 Subject: [PATCH 5/5] Update release version --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f49d9cb3..50d81095 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ _Java 8 maven artifact:_ com.zaxxer HikariCP - 2.3.6 + 2.3.7 compile ``` @@ -22,7 +22,7 @@ _Java 6 and Java 7 maven artifact:_ com.zaxxer HikariCP-java6 - 2.3.6 + 2.3.7 compile ```