Exception handling inside HbaseObjectWritable needs to be reworked, IMHO.
At several places inside HbaseObjectWritable.readObject, exceptions are caught and rethrown as I/O Exception (including ClassNotFoundException!).
So, if an implementation of readFields method throws a DoNotRetryIOException, HBase still ends up retrying.
This problem exists at least in 0.94.12 version of HBase.