I see. I would prefer to throw an IOException when "mCurrentBlockLeftByte < 0", since if everything goes well, this condition should not happen. How do you think?