You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2017/03/03 21:43:50 UTC
tomee git commit: avoid to stop twice the thread pool but ensure it
runs - assume it was the issue
Repository: tomee
Updated Branches:
refs/heads/master 7f63e5e46 -> 55d6d5ec8
avoid to stop twice the thread pool but ensure it runs - assume it was the issue
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/55d6d5ec
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/55d6d5ec
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/55d6d5ec
Branch: refs/heads/master
Commit: 55d6d5ec89da68a6794487bc75f95b55cad7b483
Parents: 7f63e5e
Author: rmannibucau <rm...@apache.org>
Authored: Fri Mar 3 22:43:42 2017 +0100
Committer: rmannibucau <rm...@apache.org>
Committed: Fri Mar 3 22:43:42 2017 +0100
----------------------------------------------------------------------
.../main/java/org/apache/openejb/util/Pool.java | 47 ++++++++------------
1 file changed, 19 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/55d6d5ec/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java b/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java
index b2bc9b2..299f841 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java
@@ -469,38 +469,29 @@ public class Pool<T> {
final ScheduledExecutorService ses = this.scheduler.getAndSet(null);
- if (null != ses) {
- try {
- ses.shutdown();
- if(!ses.awaitTermination(timeout, unit)){
- Logger.getLogger(Pool.class.getName()).log(Level.WARNING, "Pool scheduler termination timeout expired");
- }
- } catch (final Exception e) {
- //no-op
+ try {
+ // drain all keys so no new instances will be accepted into the pool
+ while (instances.tryAcquire()) {
+ Thread.yield();
}
- }
-
- // drain all keys so no new instances will be accepted into the pool
- while (instances.tryAcquire()) {
- Thread.yield();
- }
- while (minimum.tryAcquire()) {
- Thread.yield();
- }
- instances.drainPermits();
- minimum.drainPermits();
+ while (minimum.tryAcquire()) {
+ Thread.yield();
+ }
+ instances.drainPermits();
+ minimum.drainPermits();
- // flush and sweep
- flush();
- try {
- sweeper.run();
- } catch (final RejectedExecutionException e) {
- //Ignore
+ // flush and sweep
+ flush();
+ try {
+ sweeper.run();
+ } catch (final RejectedExecutionException e) {
+ //Ignore
+ }
+ } finally {
+ // Stop the sweeper thread
+ stop();
}
- // Stop the sweeper thread
- stop();
-
// Drain all leases
if (!(available instanceof Overdraft)) {
while (available.tryAcquire()) {