Index: hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (revision 1487132) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (working copy) @@ -2829,7 +2829,7 @@ PayloadCarryingRpcController controller = (PayloadCarryingRpcController)rpcc; CellScanner cellScanner = controller != null? controller.cellScanner(): null; // Clear scanner so we are not holding on to reference across call. - controller.setCellScanner(null); + if (controller != null) controller.setCellScanner(null); try { requestCount.increment(); HRegion region = getRegion(request.getRegion()); @@ -3171,9 +3171,9 @@ // rpc controller is how we bring in data via the back door; it is unprotobuf'ed data. // It is also the conduit via which we pass back data. PayloadCarryingRpcController controller = (PayloadCarryingRpcController)rpcc; - CellScanner cellScanner = controller != null? controller.cellScanner(): null; + CellScanner cellScanner = controller != null ? controller.cellScanner(): null; // Clear scanner so we are not holding on to reference across call. - controller.setCellScanner(null); + if (controller != null) controller.setCellScanner(null); List cellsToReturn = null; try { HRegion region = getRegion(request.getRegion()); @@ -3265,7 +3265,7 @@ } } // Load the controller with the Cells to return. - if (cellsToReturn != null && !cellsToReturn.isEmpty()) { + if (cellsToReturn != null && !cellsToReturn.isEmpty() && controller != null) { controller.setCellScanner(CellUtil.createCellScanner(cellsToReturn)); } return builder.build(); @@ -3739,7 +3739,7 @@ PayloadCarryingRpcController controller = (PayloadCarryingRpcController) rpcc; CellScanner cellScanner = controller != null ? controller.cellScanner() : null; // Clear scanner so we are not holding on to reference across call. - controller.setCellScanner(null); + if (controller != null) controller.setCellScanner(null); try { checkOpen(); HRegion region = getRegion(request.getRegion()); Index: hbase-server/src/main/java/org/apache/hadoop/hbase/util/hbck/TableLockChecker.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/util/hbck/TableLockChecker.java (revision 1487132) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/util/hbck/TableLockChecker.java (working copy) @@ -65,7 +65,7 @@ data.getPurpose(), data.getIsShared(), data.getCreateTime()); } - if (data.hasCreateTime() && data.getCreateTime() < expireDate) { + if (data != null && data.hasCreateTime() && data.getCreateTime() < expireDate) { errorReporter.reportError(HBaseFsck.ErrorReporter.ERROR_CODE.EXPIRED_TABLE_LOCK, msg); } else { errorReporter.print(msg);