/** * Reopen the ResultScanner if mReopenScannerOnTimeout is true. The new ResultScanner should be * set to start where the old scanner left off. */ private void reopenScanner() { if (mReopenScannerOnTimeout) { LOG.debug("HBase scanner timed out: closing an reopening a new scanner."); final byte[] nextRow = (null == mNextResult) ? mScan.getStartRow() : leastGreaterThan(mNextResult.getRow()); mScan.setStartRow(nextRow); mResultScanner.close(); try { mResultScanner = mHTable.getScanner(mScan); } catch (IOException ioe) { throw new FijiIOException(ioe); } } else { throw new FijiIOException("HBase scanner timed out with automatic reopening disabled."); } }