Description
Several places in the code are doing the following which is wrong:
throw Throwables.propagate(e);
This seems to get rid of any stack trace. Instead, it should be:
Throwables.propagate(e); throw new IllegalStateException(); // won't happen as above call throws
This preserves the stack trace.