Although it isn't breaking anything the DataBlockInputStream is not correctly tracking remaining bytes. It also is lacking tests.