tree b933d2e23581413976aa95047bce0e45b514f53b
parent bd699e61d729f327b5de302089d11bc3dcadfeb8
author Venkateswararao Jujjuri (JV) <jujjuri@gmail.com> 1556680832 -0700
committer GitHub <noreply@github.com> 1556680832 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJcyRCACRBK7hj4Ov3rIwAAdHIIAFtHhjxJWNBuJkPyzdOAlVLA
 MrUe17urtAs/U3cCaquG4D/klfnpqCKTGkmj24zEBikguTbJATeqw9KIEWZLEomJ
 eupzeZc/BYPxI7j8yx4eRm4GX1MVxFEFcTPn0nw+AZcuZueds7sA/5GdRCLvp6Eg
 K9MAqzlDDqORQHlkQogkxoaVjug8FW30CJfkJYl1ToKQL9aj5gpjPoZmMGbzO+lh
 e6azJbJB0MAjBGaaMvt8nCqeJ43JI/rAp9W5NAx5zS8oKfY7SY4XxrXovleNblf2
 XIkEpXfRqwD7VjafR3mG9TbfFapdZ6IVWNjCRMrroLjdELHyRMlI2qYXd1iuAQ8=
 =r0YC
 -----END PGP SIGNATURE-----
 

Explicit error message if extent is not present on ZK (#2066)

* Explicit error message if extent is not present on ZK

Client can get no extent error in the following two scenarios.
1. When client attempted to read/open an extent that
   is not on ZK (metadata server)
2. When client attempted to read a Ledger which is on metadata
   server, but somehow missing on bookies (Data server)

It is quite confusing to get the same error, NoSuchLedgerExists
for both these cases. This checkin introduced a new error at the
BookKeeper client level, NoSuchLedgerExistsOnMetadataServer if
it is not available on ZK.

For errors related to Ledger is not available on bookie,
I left NoSuchLedgerExists as-is(instead of changing it to
NoSuchLedgerExistsOnDataServer) to minimize code changes.

This change alone provides enough distinction between these
two types of errors.

Signed-off-by: Venkateswararao Jujjuri (JV) <vjujjuri@salesforce.com>

* Checkstyle fixes

* Some more fixes

* Fixing DL test fixes
