@Test
public void callableWithTwoNullWrappersThreadsProperly() throws Exception {

    final Object out = new Object();
    Callable<Object> c = new Callable<Object>() {
        public Object call() throws Exception {
            return out;
        }
    };
    NullWrapper wrapper1 = new NullWrapper();
    NullWrapper wrapper2 = new NullWrapper();
    impl = new ServiceWrapperChain(Arrays.asList((ServiceWrapper)wrapper1, (ServiceWrapper)wrapper2));
    Object result = impl.invoke(c);
    assertTrue(wrapper1.invokedCallable);
    assertTrue(wrapper2.invokedCallable);
    assertSame(out, result);
}