Index: src/main/java/org/apache/hadoop/hbase/regionserver/OperationStatus.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/OperationStatus.java (revision 1234922) +++ src/main/java/org/apache/hadoop/hbase/regionserver/OperationStatus.java (working copy) @@ -30,10 +30,22 @@ */ public class OperationStatus { - private OperationStatusCode code; + /** Singleton for successful operations. */ + static final OperationStatus SUCCESS = + new OperationStatus(OperationStatusCode.SUCCESS); - private String exceptionMsg; + /** Singleton for failed operations. */ + static final OperationStatus FAILURE = + new OperationStatus(OperationStatusCode.FAILURE); + /** Singleton for operations not yet run. */ + static final OperationStatus NOT_RUN = + new OperationStatus(OperationStatusCode.NOT_RUN); + + private final OperationStatusCode code; + + private final String exceptionMsg; + public OperationStatus(OperationStatusCode code) { this(code, ""); } Index: src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (revision 1234922) +++ src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (working copy) @@ -1675,8 +1675,7 @@ public BatchOperationInProgress(T[] operations) { this.operations = operations; this.retCodeDetails = new OperationStatus[operations.length]; - Arrays.fill(this.retCodeDetails, new OperationStatus( - OperationStatusCode.NOT_RUN)); + Arrays.fill(this.retCodeDetails, OperationStatus.NOT_RUN); } public boolean isDone() { @@ -1745,8 +1744,7 @@ if (coprocessorHost.prePut(put, walEdit, put.getWriteToWAL())) { // pre hook says skip this Put // mark as success and skip below - batchOp.retCodeDetails[i] = new OperationStatus( - OperationStatusCode.SUCCESS); + batchOp.retCodeDetails[i] = OperationStatus.SUCCESS; } } } @@ -1894,8 +1892,7 @@ if (!success) { for (int i = firstIndex; i < lastIndexExclusive; i++) { if (batchOp.retCodeDetails[i].getOperationStatusCode() == OperationStatusCode.NOT_RUN) { - batchOp.retCodeDetails[i] = new OperationStatus( - OperationStatusCode.FAILURE); + batchOp.retCodeDetails[i] = OperationStatus.FAILURE; } } }