if (future.getError() != null) { state.getThrowables().add(future.getError()); result = false; RepeatStatus status = future.getResult(); result = result && canContinue(status); executeAfterInterceptors(future.getContext(), status);
@Override public int compare(ResultHolder h1, ResultHolder h2) { RepeatStatus result1 = h1.getResult(); RepeatStatus result2 = h2.getResult(); if (result1 == null && result2 == null) { return 0; } if (result1 == null) { return -1; } else if (result2 == null) { return 1; } if ((result1.isContinuable() && result2.isContinuable()) || (!result1.isContinuable() && !result2.isContinuable())) { return 0; } if (result1.isContinuable()) { return -1; } return 1; } }
if (future.getError() != null) { state.getThrowables().add(future.getError()); result = false; RepeatStatus status = future.getResult(); result = result && canContinue(status); executeAfterInterceptors(future.getContext(), status);
@Test public void testOrdering() throws Exception { queue.expect(); queue.expect(); queue.put(new TestResultHolder(RepeatStatus.FINISHED)); queue.put(new TestResultHolder(RepeatStatus.CONTINUABLE)); assertFalse(queue.isEmpty()); assertTrue(queue.take().getResult().isContinuable()); assertFalse(queue.take().getResult().isContinuable()); }
@Test public void testPutTake() throws Exception { queue.expect(); assertTrue(queue.isExpecting()); assertTrue(queue.isEmpty()); queue.put(new TestResultHolder(RepeatStatus.CONTINUABLE)); assertFalse(queue.isEmpty()); assertTrue(queue.take().getResult().isContinuable()); assertFalse(queue.isExpecting()); }
@Override public int compare(ResultHolder h1, ResultHolder h2) { RepeatStatus result1 = h1.getResult(); RepeatStatus result2 = h2.getResult(); if (result1 == null && result2 == null) { return 0; } if (result1 == null) { return -1; } else if (result2 == null) { return 1; } if ((result1.isContinuable() && result2.isContinuable()) || (!result1.isContinuable() && !result2.isContinuable())) { return 0; } if (result1.isContinuable()) { return -1; } return 1; } }