static RowResultIterator makeRowResultIterator(long ellapsedMillis, String tsUUID, Schema schema, WireProtocol.RowwiseRowBlockPB data, final CallResponse callResponse) throws KuduException { if (data == null || data.getNumRows() == 0) { return new RowResultIterator(ellapsedMillis, tsUUID, schema, 0, null, null); } Slice bs = callResponse.getSidecar(data.getRowsSidecar()); Slice indirectBs = callResponse.getSidecar(data.getIndirectDataSidecar()); int numRows = data.getNumRows(); // Integrity check int rowSize = schema.getRowSize(); int expectedSize = numRows * rowSize; if (expectedSize != bs.length()) { Status statusIllegalState = Status.IllegalState("RowResult block has " + bs.length() + " bytes of data but expected " + expectedSize + " for " + numRows + " rows"); throw new NonRecoverableException(statusIllegalState); } return new RowResultIterator(ellapsedMillis, tsUUID, schema, numRows, bs, indirectBs); }