shouldn't this throw an IllegalStateException? The callerr has failed if it's attempting to read more than it should.