use object buffer to support read called without a block