/** {@inheritDoc}. */ @Override public void afterFirstTransaction() throws Exception { // Terminate disco-event-worker thread on one node. WorkersControlMXBean bean = workersMXBean(failedNodeIdx); bean.terminateWorker( bean.getWorkerNames().stream() .filter(name -> name.startsWith("disco-event-worker")) .findFirst() .orElse(null) ); }
/** * @throws Exception Thrown if test fails. */ @Test public void testStopThreadById() throws Exception { WorkersControlMXBean workersCtrlMXBean = new WorkersControlMXBeanImpl(null); Thread t1 = startTestThread(); Thread t2 = startTestThread(); assertTrue(workersCtrlMXBean.stopThreadById(t1.getId())); assertTrue(workersCtrlMXBean.stopThreadById(t2.getId())); t1.join(500); t2.join(500); assertFalse(workersCtrlMXBean.stopThreadById(t1.getId())); assertFalse(workersCtrlMXBean.stopThreadById(t2.getId())); }
/** * @throws Exception Thrown if test fails. */ @Test public void testStopThreadByUniqueName() throws Exception { WorkersControlMXBean workersCtrlMXBean = new WorkersControlMXBeanImpl(null); Thread t = startTestThread(); assertTrue(workersCtrlMXBean.stopThreadByUniqueName(TEST_THREAD_NAME)); t.join(500); assertFalse(workersCtrlMXBean.stopThreadByUniqueName(TEST_THREAD_NAME)); Thread t1 = startTestThread(); Thread t2 = startTestThread(); assertFalse(workersCtrlMXBean.stopThreadByUniqueName(TEST_THREAD_NAME)); t1.stop(); t2.stop(); }