@Test public void testNoStackOverflowErrorWithImmediateEventExecutorB() throws Exception { final Promise<Void>[] p = new DefaultPromise[128]; for (int i = 0; i < p.length; i++) { final int finalI = i; p[i] = new DefaultPromise<Void>(ImmediateEventExecutor.INSTANCE); p[i].addListener( new FutureListener<Void>() { @Override public void operationComplete(Future<Void> future) throws Exception { DefaultPromise.notifyListener( ImmediateEventExecutor.INSTANCE, future, new FutureListener<Void>() { @Override public void operationComplete(Future<Void> future) throws Exception { if (finalI + 1 < p.length) { p[finalI + 1].setSuccess(null); } } }); } }); } p[0].setSuccess(null); for (Promise<Void> a : p) { assertThat(a.isSuccess(), is(true)); } }