@Test public void testBypassingWaitingTimeoutProcedures() throws Exception { final WaitingTimeoutProcedure proc = new WaitingTimeoutProcedure(); long id = procExecutor.submitProcedure(proc); Thread.sleep(500); // bypass the procedure assertTrue(procExecutor.bypassProcedure(id, 1000, true, false)); htu.waitFor(5000, () -> proc.isSuccess() && proc.isBypass()); LOG.info("{} finished", proc); }
@Override protected synchronized boolean setTimeoutFailure(TestProcEnv env) { setState(ProcedureProtos.ProcedureState.RUNNABLE); procExecutor.getScheduler().addFront(this); return false; // 'false' means that this procedure handled the timeout } }
@Override protected Procedure[] execute(final TestProcEnv env) throws ProcedureSuspendedException { // Always suspend the procedure setTimeout(50000); setState(ProcedureProtos.ProcedureState.WAITING_TIMEOUT); skipPersistence(); throw new ProcedureSuspendedException(); }
@Test public void testBypassingWaitingTimeoutProcedures() throws Exception { final WaitingTimeoutProcedure proc = new WaitingTimeoutProcedure(); long id = procExecutor.submitProcedure(proc); Thread.sleep(500); // bypass the procedure assertTrue(procExecutor.bypassProcedure(id, 1000, true, false)); htu.waitFor(5000, () -> proc.isSuccess() && proc.isBypass()); LOG.info("{} finished", proc); }
@Override protected Procedure[] execute(final TestProcEnv env) throws ProcedureSuspendedException { // Always suspend the procedure setTimeout(50000); setState(ProcedureProtos.ProcedureState.WAITING_TIMEOUT); skipPersistence(); throw new ProcedureSuspendedException(); }
@Override protected synchronized boolean setTimeoutFailure(TestProcEnv env) { setState(ProcedureProtos.ProcedureState.RUNNABLE); procExecutor.getScheduler().addFront(this); return false; // 'false' means that this procedure handled the timeout } }