Index: hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java (revision 1553069) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java (working copy) @@ -436,10 +436,11 @@ @Override public boolean postScannerFilterRow(final ObserverContext e, - final InternalScanner s, final byte[] currentRow, final boolean hasMore) throws IOException { + final InternalScanner s, final byte[] currentRow, final int offset, final short length, + final boolean hasMore) throws IOException { return hasMore; } - + @Override public void preScannerClose(final ObserverContext e, final InternalScanner s) throws IOException { Index: hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java (revision 1553069) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java (working copy) @@ -967,12 +967,15 @@ * @param c the environment provided by the region server * @param s the scanner * @param currentRow The current rowkey which got filtered out + * @param offset offset to rowkey + * @param length length of rowkey * @param hasMore the 'has more' indication * @return whether more rows are available for the scanner or not * @throws IOException */ boolean postScannerFilterRow(final ObserverContext c, - final InternalScanner s, final byte[] currentRow, final boolean hasMore) throws IOException; + final InternalScanner s, final byte[] currentRow, final int offset, final short length, + final boolean hasMore) throws IOException; /** * Called before the client closes a scanner. Index: hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (revision 1553069) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (working copy) @@ -3944,8 +3944,8 @@ resetFilters(); // Calling the hook in CP which allows it to do a fast forward return this.region.getCoprocessorHost() == null - || this.region.getCoprocessorHost().postScannerFilterRow(this, - currentRow); + || this.region.getCoprocessorHost() + .postScannerFilterRow(this, currentRow, offset, length); } protected boolean isStopRow(byte[] currentRow, int offset, short length) { Index: hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java (revision 1553069) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java (working copy) @@ -1503,11 +1503,13 @@ * filter. * @param s the scanner * @param currentRow The current rowkey which got filtered out + * @param offset offset to rowkey + * @param length length of rowkey * @return whether more rows are available for the scanner or not * @throws IOException */ - public boolean postScannerFilterRow(final InternalScanner s, final byte[] currentRow) - throws IOException { + public boolean postScannerFilterRow(final InternalScanner s, final byte[] currentRow, int offset, + short length) throws IOException { boolean hasMore = true; // By default assume more rows there. ObserverContext ctx = null; for (RegionEnvironment env : coprocessors) { @@ -1515,7 +1517,7 @@ ctx = ObserverContext.createAndPrepare(env, ctx); try { hasMore = ((RegionObserver) env.getInstance()).postScannerFilterRow(ctx, s, currentRow, - hasMore); + offset, length, hasMore); } catch (Throwable e) { handleCoprocessorThrowable(env, e); } Index: hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ReversedRegionScannerImpl.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ReversedRegionScannerImpl.java (revision 1553069) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ReversedRegionScannerImpl.java (working copy) @@ -73,7 +73,7 @@ // Calling the hook in CP which allows it to do a fast forward if (this.region.getCoprocessorHost() != null) { return this.region.getCoprocessorHost().postScannerFilterRow(this, - currentRow); + currentRow, offset, length); } return true; }