void checkScannerClose(final InternalScanner s) throws IOException { if (s == null) { return; } if (region.getCoprocessorHost() == null) { s.close(); return; } region.getCoprocessorHost().preScannerClose(s); try { s.close(); } finally { region.getCoprocessorHost().postScannerClose(s); } }
private void closeScanner(HRegion region, RegionScanner scanner, String scannerName, RpcCallContext context) throws IOException { if (region.getCoprocessorHost() != null) { if (region.getCoprocessorHost().preScannerClose(scanner)) { // bypass the actual close. return; } } RegionScannerHolder rsh = scanners.remove(scannerName); if (rsh != null) { if (context != null) { context.setCallBack(rsh.closeCallBack); } else { rsh.s.close(); } if (region.getCoprocessorHost() != null) { region.getCoprocessorHost().postScannerClose(scanner); } closedScanners.put(scannerName, scannerName); } }
s.close(); if (region != null && region.getCoprocessorHost() != null) { region.getCoprocessorHost().postScannerClose(s);
void checkScannerClose(final InternalScanner s) throws IOException { if (s == null) { return; } if (region.getCoprocessorHost() == null) { s.close(); return; } region.getCoprocessorHost().preScannerClose(s); try { s.close(); } finally { region.getCoprocessorHost().postScannerClose(s); } }
void checkScannerClose(final InternalScanner s) throws IOException { if (s == null) { return; } if (region.getCoprocessorHost() == null) { s.close(); return; } region.getCoprocessorHost().preScannerClose(s); try { s.close(); } finally { region.getCoprocessorHost().postScannerClose(s); } }
public void leaseExpired() { RegionScanner s = scanners.remove(this.scannerName); if (s != null) { LOG.info("Scanner " + this.scannerName + " lease expired on region " + s.getRegionInfo().getRegionNameAsString()); try { HRegion region = getRegion(s.getRegionInfo().getRegionName()); if (region != null && region.getCoprocessorHost() != null) { region.getCoprocessorHost().preScannerClose(s); } s.close(); if (region != null && region.getCoprocessorHost() != null) { region.getCoprocessorHost().postScannerClose(s); } } catch (IOException e) { LOG.error("Closing scanner for " + s.getRegionInfo().getRegionNameAsString(), e); } } else { LOG.info("Scanner " + this.scannerName + " lease expired"); } } }
public void close(final long scannerId) throws IOException { try { checkOpen(); requestCount.incrementAndGet(); String scannerName = String.valueOf(scannerId); RegionScanner s = scanners.get(scannerName); HRegion region = null; if (s != null) { // call coprocessor. region = getRegion(s.getRegionInfo().getRegionName()); if (region != null && region.getCoprocessorHost() != null) { if (region.getCoprocessorHost().preScannerClose(s)) { return; // bypass } } } s = scanners.remove(scannerName); if (s != null) { s.close(); this.leases.cancelLease(scannerName); if (region != null && region.getCoprocessorHost() != null) { region.getCoprocessorHost().postScannerClose(s); } } } catch (Throwable t) { throw convertThrowableToIOE(cleanup(t)); } }
@Override public void leaseExpired() { RegionScannerHolder rsh = scanners.remove(this.scannerName); if (rsh != null) { RegionScanner s = rsh.s; LOG.info("Scanner " + this.scannerName + " lease expired on region " + s.getRegionInfo().getRegionNameAsString()); try { Region region = regionServer.getRegion(s.getRegionInfo().getRegionName()); if (region != null && region.getCoprocessorHost() != null) { region.getCoprocessorHost().preScannerClose(s); } s.close(); if (region != null && region.getCoprocessorHost() != null) { region.getCoprocessorHost().postScannerClose(s); } } catch (IOException e) { LOG.error("Closing scanner for " + s.getRegionInfo().getRegionNameAsString(), e); } } else { LOG.warn("Scanner " + this.scannerName + " lease expired, but no related" + " scanner found, hence no chance to close that related scanner!"); } } }
regionServer.leases.cancelLease(scannerName); if (region != null && region.getCoprocessorHost() != null) { region.getCoprocessorHost().postScannerClose(scanner);