=== wrapped WITH the cause === getMessage(): could not load order 42 getCause(): java.lang.IllegalStateException: connection reset by peer java.lang.RuntimeException: could not load order 42 at com.ankurm.exceptions.ChainingDemo.serviceGood(ChainingDemo.java:10) at com.ankurm.exceptions.ChainingDemo.print(ChainingDemo.java:20) at com.ankurm.exceptions.ChainingDemo.main(ChainingDemo.java:30) Caused by: java.lang.IllegalStateException: connection reset by peer at com.ankurm.exceptions.ChainingDemo.dao(ChainingDemo.java:6) at com.ankurm.exceptions.ChainingDemo.serviceGood(ChainingDemo.java:9) ... 2 more === wrapped WITHOUT the cause (message copied as a string) === getMessage(): could not load order 42: connection reset by peer getCause(): null java.lang.RuntimeException: could not load order 42: connection reset by peer at com.ankurm.exceptions.ChainingDemo.serviceBad(ChainingDemo.java:15) at com.ankurm.exceptions.ChainingDemo.print(ChainingDemo.java:20) at com.ankurm.exceptions.ChainingDemo.main(ChainingDemo.java:31)