commit | 77e7dd84a5e52a47706a36fd6977b66590304c11 | [log] [tgz] |
---|---|---|
author | Stephan Wahlbrink <sw@wahlbrink.eu> | Wed May 13 19:13:40 2020 +0200 |
committer | Stephan Wahlbrink <sw@wahlbrink.eu> | Wed May 13 19:18:32 2020 +0200 |
tree | 035036b220da98a61330bac53922e87a28126ef0 | |
parent | 2fc6594b02c8b12c3638392e4f612d1acac4ce9d [diff] |
Bug 561663: [RJ-Servi] Fix hanging shutdown due to abandoned nodes created during shutdown Change-Id: Ic8d41dfa98001cba7baebfaeceac2170290a1189
diff --git a/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/JMPoolTest.java b/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/JMPoolTest.java index 59f88b2..fba0d07 100644 --- a/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/JMPoolTest.java +++ b/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/JMPoolTest.java
@@ -45,6 +45,8 @@ public class JMPoolTest extends AbstractServiTest { + private static int NODE_STARTUP_MILLIS= 7000; + private static int WAIT_IDLE_SEC= 30; private static List<JMPoolServer> allServers= new ArrayList<>(); @@ -232,7 +234,7 @@ final long t2= System.nanoTime(); final RServi servi2= getServi("test2"); { final long waitTime= TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - t2); - assertTrue(waitTime < poolConfig.getMaxWaitTime() + 1000); + assertTrue(waitTime < poolConfig.getMaxWaitTime() + NODE_STARTUP_MILLIS); } final long t3= System.nanoTime();
diff --git a/servi/org.eclipse.statet.rj.servi/srcServiPool/org/eclipse/statet/internal/rj/servi/APool2NodeHandler.java b/servi/org.eclipse.statet.rj.servi/srcServiPool/org/eclipse/statet/internal/rj/servi/APool2NodeHandler.java index f8d0ef3..41d3001 100644 --- a/servi/org.eclipse.statet.rj.servi/srcServiPool/org/eclipse/statet/internal/rj/servi/APool2NodeHandler.java +++ b/servi/org.eclipse.statet.rj.servi/srcServiPool/org/eclipse/statet/internal/rj/servi/APool2NodeHandler.java
@@ -155,13 +155,11 @@ doEvict(evictNanos(timeout), timeout == 0); } - void doEvict(final long nanos, boolean direct) { + void doEvict(final long nanos, final boolean direct) { synchronized (this.p) { if (this.evict == 0 || this.evict > nanos) { this.evict= safeNanos(nanos); } - - direct|= this.p.startEvictionTest(); } if (direct) {