Description
For development of an avro-based transport for remote OSGi services I had to wrap & unwind transport-level exceptions into proper exceptions thrown to a client. One such scenario is accessing a disconnected/dead endpoint, which should be a detectable condition. This works fine with the SaslSocketTransceiver (where my wrapper can properly detect the IO Exception), but not with Netty which hiccups with an internal NPE.
Generally speaking any transport-level and remote-endpoint exceptions must not only be clearly detectable (either directly by client code or wrapper infrastructure around avro) but also distinguishable from another.