This commit is contained in:
Clebert Suconic 2018-02-20 23:50:08 -05:00
commit 3823465e17
3 changed files with 17 additions and 9 deletions

View File

@ -170,6 +170,7 @@ public final class TimedBuffer extends CriticalComponentImpl {
public void stop() { public void stop() {
enterCritical(CRITICAL_PATH_STOP); enterCritical(CRITICAL_PATH_STOP);
Thread localTimer = null;
try { try {
// add critical analyzer here.... <<<< // add critical analyzer here.... <<<<
synchronized (this) { synchronized (this) {
@ -190,17 +191,25 @@ public final class TimedBuffer extends CriticalComponentImpl {
logRatesTimerTask.cancel(); logRatesTimerTask.cancel();
} }
while (timerThread.isAlive()) { localTimer = timerThread;
try { timerThread = null;
timerThread.join();
} catch (InterruptedException e) {
throw new ActiveMQInterruptedException(e);
}
}
} finally { } finally {
started = false; started = false;
} }
} }
if (localTimer != null) {
while (localTimer.isAlive()) {
try {
localTimer.join(1000);
if (localTimer.isAlive()) {
localTimer.interrupt();
}
} catch (InterruptedException e) {
throw new ActiveMQInterruptedException(e);
}
}
}
} finally { } finally {
leaveCritical(CRITICAL_PATH_STOP); leaveCritical(CRITICAL_PATH_STOP);
} }

View File

@ -68,7 +68,6 @@ public class CallbackOrderTest {
// We will repeat the test a few times, increasing N // We will repeat the test a few times, increasing N
// to increase possibility of issues due to reuse of callbacks // to increase possibility of issues due to reuse of callbacks
for (int n = 1; n < 100; n++) { for (int n = 1; n < 100; n++) {
System.out.println("n = " + n);
int N = n; int N = n;
count.set(0); count.set(0);
list.clear(); list.clear();

View File

@ -110,7 +110,7 @@ public class OpenWireManagementTest extends OpenWireTestBase {
String[] addresses = serverControl.getAddressNames(); String[] addresses = serverControl.getAddressNames();
assertEquals(3, addresses.length); assertEquals(4, addresses.length);
for (String addr : addresses) { for (String addr : addresses) {
assertFalse(addr.startsWith(AdvisorySupport.ADVISORY_TOPIC_PREFIX)); assertFalse(addr.startsWith(AdvisorySupport.ADVISORY_TOPIC_PREFIX));
} }