tree 16393309c7bf239c2fc2e53e6eec806da4ad7571
parent 96f9c5a1b3a0b74d641a288544b6a3a0aa986574
author Enrico Olivelli <eolivelli@gmail.com> 1595855189 +0200
committer GitHub <noreply@github.com> 1595855189 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJfHtFVCRBK7hj4Ov3rIwAAdHIIAAQR0PllbhlR86m3egdD+mVR
 CZcF7ZpBd2gpUD/+2UufEAwMKxOvqtevfqbkZdLSw08Q1E+/FnakAHrH8KCWYYJ4
 7vDP1O9q98MYzqsRBkWC3nNYiSAHZK3ZvIj76QHotUKK5YV142o8PluO2shKtFQJ
 f0xqP3RkVR9PfKPYCS8lIjx28mc+p34oy2GWW82oAnAZ6MpxkqK4w71TSN2L6JbF
 nNrpeALv6DlAAmG2K37Y9PWnPPqlKhxn98JaoRTm/JN5FD0rIdGb+clvgDWZCjVv
 mPKqrCAsZhpCgXu9nF4PDFCq6u9UzMcVZL4hUjNV3ybTY6sifD3hcuKZ1TtQ74Y=
 =eBYH
 -----END PGP SIGNATURE-----
 

Track ZooKeeper errors as causes of ZKException

Descriptions of the changes in this PR:

### Motivation

Every time a problem with ZK arises you don't see it in the exception chain of the BKException (in this case ZKException) and you end up with errors like:
```
org.apache.bookkeeper.client.BKException$ZKException: Error while using ZooKeeper
        at org.apache.bookkeeper.client.SyncCallbackUtils.finish(SyncCallbackUtils.java:83)
        at org.apache.bookkeeper.client.SyncCallbackUtils$SyncAddCallback.addComplete(SyncCallbackUtils.java:251)
        at org.apache.bookkeeper.client.AsyncCallback$AddCallback.addCompleteWithLatency(AsyncCallback.java:91)
        at org.apache.bookkeeper.client.PendingAddOp.submitCallback(PendingAddOp.java:430)
        at org.apache.bookkeeper.client.LedgerHandle.errorOutPendingAdds(LedgerHandle.java:1784)
        at org.apache.bookkeeper.client.LedgerHandle$5.safeRun(LedgerHandle.java:574)
```

### Changes
Add a "cause" to every ZKException.

### Notes
There are very few places that cannot be fixed because they are still using the old callback based mechanism without CompletableFuture. Those points are not changed in order to make the patch simple but still useful.





Reviewers: Jia Zhai <zhaijia@apache.org>

This closes #2384 from eolivelli/fix/zkexception-chain