This is an automated email from the ASF dual-hosted git repository.

apurtell pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
     new ac8b3a795f4 HBASE-27210 Clean up error-prone findings in 
hbase-endpoint (#4646)
ac8b3a795f4 is described below

commit ac8b3a795f44d3837a42ce128e6786e2c8374646
Author: Andrew Purtell <[email protected]>
AuthorDate: Tue Jul 26 17:33:35 2022 -0700

    HBASE-27210 Clean up error-prone findings in hbase-endpoint (#4646)
    
    Signed-off-by: Duo Zhang <[email protected]>
---
 .../client/coprocessor/AggregationClient.java      | 13 +-----
 .../client/coprocessor/AggregationHelper.java      |  2 +-
 .../hbase/coprocessor/AggregateImplementation.java | 48 +++++++---------------
 .../apache/hadoop/hbase/coprocessor/Export.java    |  5 +--
 .../hbase/client/TestAsyncAggregationClient.java   |  6 +--
 .../hbase/client/TestRpcControllerFactory.java     |  2 +-
 .../client/coprocessor/TestAggregationClient.java  |  3 +-
 .../coprocessor/TestBatchCoprocessorEndpoint.java  | 28 ++++++-------
 .../hbase/coprocessor/TestCoprocessorEndpoint.java |  7 ++--
 .../coprocessor/TestCoprocessorTableEndpoint.java  |  6 +--
 .../hadoop/hbase/coprocessor/TestImportExport.java |  5 +--
 .../hadoop/hbase/coprocessor/TestSecureExport.java | 12 ++----
 12 files changed, 51 insertions(+), 86 deletions(-)

diff --git 
a/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/client/coprocessor/AggregationClient.java
 
b/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/client/coprocessor/AggregationClient.java
index 51a2e722955..f47f5add0da 100644
--- 
a/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/client/coprocessor/AggregationClient.java
+++ 
b/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/client/coprocessor/AggregationClient.java
@@ -694,10 +694,9 @@ public class AggregationClient implements Closeable {
   public <R, S, P extends Message, Q extends Message, T extends Message> double
     std(final Table table, ColumnInterpreter<R, S, P, Q, T> ci, Scan scan) 
throws Throwable {
     Pair<List<S>, Long> p = getStdArgs(table, ci, scan);
-    double res = 0d;
     double avg = ci.divideForAvg(p.getFirst().get(0), p.getSecond());
     double avgOfSumSq = ci.divideForAvg(p.getFirst().get(1), p.getSecond());
-    res = avgOfSumSq - (avg) * (avg); // variance
+    double res = avgOfSumSq - avg * avg; // variance
     res = Math.pow(res, 0.5);
     return res;
   }
@@ -870,14 +869,6 @@ public class AggregationClient implements Closeable {
   }
 
   byte[] getBytesFromResponse(ByteString response) {
-    ByteBuffer bb = response.asReadOnlyByteBuffer();
-    bb.rewind();
-    byte[] bytes;
-    if (bb.hasArray()) {
-      bytes = bb.array();
-    } else {
-      bytes = response.toByteArray();
-    }
-    return bytes;
+    return response.toByteArray();
   }
 }
diff --git 
a/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/client/coprocessor/AggregationHelper.java
 
b/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/client/coprocessor/AggregationHelper.java
index 0f212e6d867..e7fa76ca274 100644
--- 
a/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/client/coprocessor/AggregationHelper.java
+++ 
b/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/client/coprocessor/AggregationHelper.java
@@ -86,7 +86,7 @@ public final class AggregationHelper {
    * @return the instance
    * @throws IOException Either we couldn't instantiate the method object, or 
"parseFrom" failed.
    */
-  @SuppressWarnings("unchecked")
+  @SuppressWarnings({ "unchecked", "TypeParameterUnusedInFormals" })
   // Used server-side too by Aggregation Coprocesor Endpoint. Undo this 
interdependence. TODO.
   public static <T extends Message> T getParsedGenericInstance(Class<?> 
runtimeClass, int position,
     ByteString b) throws IOException {
diff --git 
a/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateImplementation.java
 
b/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateImplementation.java
index 84d8c1fbf35..6adb9fc22eb 100644
--- 
a/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateImplementation.java
+++ 
b/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateImplementation.java
@@ -26,6 +26,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.NavigableSet;
+import org.apache.commons.io.IOUtils;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CoprocessorEnvironment;
 import org.apache.hadoop.hbase.client.Scan;
@@ -52,12 +53,12 @@ import 
org.apache.hadoop.hbase.shaded.protobuf.generated.AggregateProtos.Aggrega
  * aggregate function at a region level. {@link ColumnInterpreter} is used to 
interpret column
  * value. This class is parameterized with the following (these are the types 
with which the
  * {@link ColumnInterpreter} is parameterized, and for more description on 
these, refer to
- * {@link ColumnInterpreter}):
- * @param <T> Cell value data type
- * @param <S> Promoted data type
- * @param <P> PB message that is used to transport initializer specific bytes
- * @param <Q> PB message that is used to transport Cell (&lt;T&gt;) instance
- * @param <R> PB message that is used to transport Promoted (&lt;S&gt;) 
instance
+ * {@link ColumnInterpreter}):<br>
+ * &lt;T&gt; Cell value data type<br>
+ * &lt;S&gt; Promoted data type<br>
+ * &lt;P&gt; PB message that is used to transport initializer specific 
bytes<br>
+ * &lt;Q&gt; PB message that is used to transport Cell (&lt;T&gt;) instance<br>
+ * &lt;R&gt; PB message that is used to transport Promoted (&lt;S&gt;) 
instance<br>
  */
 @InterfaceAudience.Private
 public class AggregateImplementation<T, S, P extends Message, Q extends 
Message, R extends Message>
@@ -109,10 +110,7 @@ public class AggregateImplementation<T, S, P extends 
Message, Q extends Message,
       CoprocessorRpcUtils.setControllerException(controller, e);
     } finally {
       if (scanner != null) {
-        try {
-          scanner.close();
-        } catch (IOException ignored) {
-        }
+        IOUtils.closeQuietly(scanner);
       }
     }
     log.info("Maximum from this region is "
@@ -162,10 +160,7 @@ public class AggregateImplementation<T, S, P extends 
Message, Q extends Message,
       CoprocessorRpcUtils.setControllerException(controller, e);
     } finally {
       if (scanner != null) {
-        try {
-          scanner.close();
-        } catch (IOException ignored) {
-        }
+        IOUtils.closeQuietly(scanner);
       }
     }
     log.info("Minimum from this region is "
@@ -218,10 +213,7 @@ public class AggregateImplementation<T, S, P extends 
Message, Q extends Message,
       CoprocessorRpcUtils.setControllerException(controller, e);
     } finally {
       if (scanner != null) {
-        try {
-          scanner.close();
-        } catch (IOException ignored) {
-        }
+        IOUtils.closeQuietly(scanner);
       }
     }
     log.debug("Sum from this region is " + 
env.getRegion().getRegionInfo().getRegionNameAsString()
@@ -269,10 +261,7 @@ public class AggregateImplementation<T, S, P extends 
Message, Q extends Message,
       CoprocessorRpcUtils.setControllerException(controller, e);
     } finally {
       if (scanner != null) {
-        try {
-          scanner.close();
-        } catch (IOException ignored) {
-        }
+        IOUtils.closeQuietly(scanner);
       }
     }
     log.info("Row counter from this region is "
@@ -333,10 +322,7 @@ public class AggregateImplementation<T, S, P extends 
Message, Q extends Message,
       CoprocessorRpcUtils.setControllerException(controller, e);
     } finally {
       if (scanner != null) {
-        try {
-          scanner.close();
-        } catch (IOException ignored) {
-        }
+        IOUtils.closeQuietly(scanner);
       }
     }
     done.run(response);
@@ -399,10 +385,7 @@ public class AggregateImplementation<T, S, P extends 
Message, Q extends Message,
       CoprocessorRpcUtils.setControllerException(controller, e);
     } finally {
       if (scanner != null) {
-        try {
-          scanner.close();
-        } catch (IOException ignored) {
-        }
+        IOUtils.closeQuietly(scanner);
       }
     }
     done.run(response);
@@ -464,10 +447,7 @@ public class AggregateImplementation<T, S, P extends 
Message, Q extends Message,
       CoprocessorRpcUtils.setControllerException(controller, e);
     } finally {
       if (scanner != null) {
-        try {
-          scanner.close();
-        } catch (IOException ignored) {
-        }
+        IOUtils.closeQuietly(scanner);
       }
     }
     done.run(response);
diff --git 
a/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/coprocessor/Export.java 
b/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/coprocessor/Export.java
index b763d575052..f6a51bbf0b0 100644
--- 
a/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/coprocessor/Export.java
+++ 
b/hbase-endpoint/src/main/java/org/apache/hadoop/hbase/coprocessor/Export.java
@@ -22,7 +22,6 @@ import java.io.IOException;
 import java.security.PrivilegedExceptionAction;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
@@ -111,6 +110,7 @@ public class Export extends ExportProtos.ExportService 
implements RegionCoproces
     return run(conf, arguments.getFirst(), arguments.getSecond(), 
arguments.getThird());
   }
 
+  @SuppressWarnings("ModifiedButNotUsed")
   public static Map<byte[], Response> run(final Configuration conf, TableName 
tableName, Scan scan,
     Path dir) throws Throwable {
     FileSystem fs = dir.getFileSystem(conf);
@@ -127,7 +127,6 @@ public class Export extends ExportProtos.ExportService 
implements RegionCoproces
         table.coprocessorService(ExportProtos.ExportService.class, 
scan.getStartRow(),
           scan.getStopRow(), (ExportProtos.ExportService service) -> {
             ServerRpcController controller = new ServerRpcController();
-            Map<byte[], ExportProtos.ExportResponse> rval = new 
TreeMap<>(Bytes.BYTES_COMPARATOR);
             
CoprocessorRpcUtils.BlockingRpcCallback<ExportProtos.ExportResponse> 
rpcCallback =
               new CoprocessorRpcUtils.BlockingRpcCallback<>();
             service.export(controller, request, rpcCallback);
@@ -192,7 +191,7 @@ public class Export extends ExportProtos.ExportService 
implements RegionCoproces
 
   private static List<SequenceFile.Writer.Option> getWriterOptions(final 
Configuration conf,
     final RegionInfo info, final ExportProtos.ExportRequest request) throws 
IOException {
-    List<SequenceFile.Writer.Option> rval = new LinkedList<>();
+    List<SequenceFile.Writer.Option> rval = new ArrayList<>(5);
     rval.add(SequenceFile.Writer.keyClass(ImmutableBytesWritable.class));
     rval.add(SequenceFile.Writer.valueClass(Result.class));
     rval.add(getOutputPath(conf, info, request));
diff --git 
a/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/client/TestAsyncAggregationClient.java
 
b/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/client/TestAsyncAggregationClient.java
index 426ec0573d3..78f2f194f0b 100644
--- 
a/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/client/TestAsyncAggregationClient.java
+++ 
b/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/client/TestAsyncAggregationClient.java
@@ -56,7 +56,7 @@ public class TestAsyncAggregationClient {
 
   private static byte[] CQ2 = Bytes.toBytes("CQ2");
 
-  private static int COUNT = 1000;
+  private static long COUNT = 1000;
 
   private static AsyncConnection CONN;
 
@@ -141,7 +141,7 @@ public class TestAsyncAggregationClient {
     long halfSum = COUNT * (COUNT - 1) / 4;
     long median = 0L;
     long sum = 0L;
-    for (int i = 0; i < COUNT; i++) {
+    for (long i = 0; i < COUNT; i++) {
       sum += i;
       if (sum > halfSum) {
         median = i - 1;
@@ -158,7 +158,7 @@ public class TestAsyncAggregationClient {
       LongStream.range(0, COUNT).map(l -> l * l).reduce((l1, l2) -> l1 + 
l2).getAsLong() / 2;
     long median = 0L;
     long sum = 0L;
-    for (int i = 0; i < COUNT; i++) {
+    for (long i = 0; i < COUNT; i++) {
       sum += i * i;
       if (sum > halfSum) {
         median = i - 1;
diff --git 
a/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/client/TestRpcControllerFactory.java
 
b/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/client/TestRpcControllerFactory.java
index 6b62d67a969..9d122fb0b81 100644
--- 
a/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/client/TestRpcControllerFactory.java
+++ 
b/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/client/TestRpcControllerFactory.java
@@ -192,7 +192,7 @@ public class TestRpcControllerFactory {
 
       // reversed, regular
       scanInfo.setReadType(ReadType.STREAM);
-      counter = doScan(table, scanInfo, counter + 1);
+      doScan(table, scanInfo, counter + 1);
 
       // make sure we have no priority count
       verifyPriorityGroupCount(HConstants.ADMIN_QOS, 0);
diff --git 
a/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/client/coprocessor/TestAggregationClient.java
 
b/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/client/coprocessor/TestAggregationClient.java
index 2d8419c12cb..23748249862 100644
--- 
a/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/client/coprocessor/TestAggregationClient.java
+++ 
b/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/client/coprocessor/TestAggregationClient.java
@@ -83,8 +83,7 @@ public class TestAggregationClient {
     try {
       client.rowCount(TABLE_NAME, new LongColumnInterpreter(), new Scan());
       fail("Expected IOException");
-    } catch (Throwable e) {
-      assertTrue(e instanceof IOException);
+    } catch (IOException e) {
       assertTrue(e.getMessage().contains("Connection not initialized"));
     }
 
diff --git 
a/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestBatchCoprocessorEndpoint.java
 
b/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestBatchCoprocessorEndpoint.java
index 278fc7643f1..892fa7783e7 100644
--- 
a/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestBatchCoprocessorEndpoint.java
+++ 
b/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestBatchCoprocessorEndpoint.java
@@ -130,14 +130,14 @@ public class TestBatchCoprocessorEndpoint {
         builder.build(), ROWS[0], ROWS[ROWS.length - 1],
         ColumnAggregationNullResponseSumResponse.getDefaultInstance());
 
-    int sumResult = 0;
-    int expectedResult = 0;
+    long sumResult = 0;
+    long expectedResult = 0;
     for (Map.Entry<byte[], ColumnAggregationNullResponseSumResponse> e : 
results.entrySet()) {
       LOG.info(
         "Got value " + e.getValue().getSum() + " for region " + 
Bytes.toStringBinary(e.getKey()));
       sumResult += e.getValue().getSum();
     }
-    for (int i = 0; i < rowSeperator2; i++) {
+    for (long i = 0; i < rowSeperator2; i++) {
       expectedResult += i;
     }
     assertEquals("Invalid result", expectedResult, sumResult);
@@ -171,14 +171,14 @@ public class TestBatchCoprocessorEndpoint {
     Table table = util.getConnection().getTable(TEST_TABLE);
     Map<byte[], SumResponse> results =
       sum(table, TEST_FAMILY, TEST_QUALIFIER, ROWS[0], ROWS[ROWS.length - 1]);
-    int sumResult = 0;
-    int expectedResult = 0;
+    long sumResult = 0;
+    long expectedResult = 0;
     for (Map.Entry<byte[], SumResponse> e : results.entrySet()) {
       LOG.info(
         "Got value " + e.getValue().getSum() + " for region " + 
Bytes.toStringBinary(e.getKey()));
       sumResult += e.getValue().getSum();
     }
-    for (int i = 0; i < ROWSIZE; i++) {
+    for (long i = 0; i < ROWSIZE; i++) {
       expectedResult += i;
     }
     assertEquals("Invalid result", expectedResult, sumResult);
@@ -194,7 +194,7 @@ public class TestBatchCoprocessorEndpoint {
         "Got value " + e.getValue().getSum() + " for region " + 
Bytes.toStringBinary(e.getKey()));
       sumResult += e.getValue().getSum();
     }
-    for (int i = rowSeperator1; i < ROWSIZE; i++) {
+    for (long i = rowSeperator1; i < ROWSIZE; i++) {
       expectedResult += i;
     }
     assertEquals("Invalid result", expectedResult, sumResult);
@@ -206,14 +206,14 @@ public class TestBatchCoprocessorEndpoint {
     Table table = util.getConnection().getTable(TEST_TABLE);
     Map<byte[], SumResponse> results =
       sum(table, TEST_FAMILY, TEST_QUALIFIER, ROWS[0], ROWS[ROWS.length - 1]);
-    int sumResult = 0;
-    int expectedResult = 0;
+    long sumResult = 0;
+    long expectedResult = 0;
     for (Map.Entry<byte[], SumResponse> e : results.entrySet()) {
       LOG.info(
         "Got value " + e.getValue().getSum() + " for region " + 
Bytes.toStringBinary(e.getKey()));
       sumResult += e.getValue().getSum();
     }
-    for (int i = 0; i < ROWSIZE; i++) {
+    for (long i = 0; i < ROWSIZE; i++) {
       expectedResult += i;
     }
     assertEquals("Invalid result", expectedResult, sumResult);
@@ -227,7 +227,7 @@ public class TestBatchCoprocessorEndpoint {
         "Got value " + e.getValue().getSum() + " for region " + 
Bytes.toStringBinary(e.getKey()));
       sumResult += e.getValue().getSum();
     }
-    for (int i = rowSeperator1; i < ROWSIZE; i++) {
+    for (long i = rowSeperator1; i < ROWSIZE; i++) {
       expectedResult += i;
     }
     assertEquals("Invalid result", expectedResult, sumResult);
@@ -266,14 +266,14 @@ public class TestBatchCoprocessorEndpoint {
       hasError = true;
     }
 
-    int sumResult = 0;
-    int expectedResult = 0;
+    long sumResult = 0;
+    long expectedResult = 0;
     for (Map.Entry<byte[], ColumnAggregationWithErrorsSumResponse> e : 
results.entrySet()) {
       LOG.info(
         "Got value " + e.getValue().getSum() + " for region " + 
Bytes.toStringBinary(e.getKey()));
       sumResult += e.getValue().getSum();
     }
-    for (int i = 0; i < rowSeperator2; i++) {
+    for (long i = 0; i < rowSeperator2; i++) {
       expectedResult += i;
     }
     assertEquals("Invalid result", expectedResult, sumResult);
diff --git 
a/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorEndpoint.java
 
b/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorEndpoint.java
index c479b3bee56..285fab3273b 100644
--- 
a/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorEndpoint.java
+++ 
b/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorEndpoint.java
@@ -146,13 +146,13 @@ public class TestCoprocessorEndpoint {
     Table table = util.getConnection().getTable(TEST_TABLE);
     Map<byte[], Long> results =
       sum(table, TEST_FAMILY, TEST_QUALIFIER, ROWS[0], ROWS[ROWS.length - 1]);
-    int sumResult = 0;
-    int expectedResult = 0;
+    long sumResult = 0;
+    long expectedResult = 0;
     for (Map.Entry<byte[], Long> e : results.entrySet()) {
       LOG.info("Got value " + e.getValue() + " for region " + 
Bytes.toStringBinary(e.getKey()));
       sumResult += e.getValue();
     }
-    for (int i = 0; i < ROWSIZE; i++) {
+    for (long i = 0; i < ROWSIZE; i++) {
       expectedResult += i;
     }
     assertEquals("Invalid result", expectedResult, sumResult);
@@ -271,6 +271,7 @@ public class TestCoprocessorEndpoint {
         String> results = 
table.coprocessorService(TestRpcServiceProtos.TestProtobufRpcProto.class,
           ROWS[0], ROWS[ROWS.length - 1],
           new Batch.Call<TestRpcServiceProtos.TestProtobufRpcProto, String>() {
+            @Override
             public String call(TestRpcServiceProtos.TestProtobufRpcProto 
instance)
               throws IOException {
               
CoprocessorRpcUtils.BlockingRpcCallback<TestProtos.EchoResponseProto> callback =
diff --git 
a/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorTableEndpoint.java
 
b/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorTableEndpoint.java
index 5039d818c7e..78760baf34a 100644
--- 
a/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorTableEndpoint.java
+++ 
b/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorTableEndpoint.java
@@ -161,12 +161,12 @@ public class TestCoprocessorTableEndpoint {
     try {
       Map<byte[], Long> results =
         sum(table, TEST_FAMILY, TEST_QUALIFIER, ROWS[0], ROWS[ROWS.length - 
1]);
-      int sumResult = 0;
-      int expectedResult = 0;
+      long sumResult = 0;
+      long expectedResult = 0;
       for (Map.Entry<byte[], Long> e : results.entrySet()) {
         sumResult += e.getValue();
       }
-      for (int i = 0; i < ROWSIZE; i++) {
+      for (long i = 0; i < ROWSIZE; i++) {
         expectedResult += i;
       }
       assertEquals("Invalid result", expectedResult, sumResult);
diff --git 
a/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestImportExport.java
 
b/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestImportExport.java
index cd9b474cf3e..fa025e120c1 100644
--- 
a/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestImportExport.java
+++ 
b/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestImportExport.java
@@ -51,11 +51,10 @@ public class TestImportExport extends 
org.apache.hadoop.hbase.mapreduce.TestImpo
     Export.main(args);
   }
 
-  /**
-   * Skip the test which is unrelated to the coprocessor.Export.
-   */
   @Test
   @Ignore
+  @Override
   public void testImport94Table() throws Throwable {
+    // Skip the test which is unrelated to the coprocessor.Export.
   }
 }
diff --git 
a/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestSecureExport.java
 
b/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestSecureExport.java
index 0ac9424c092..3b000be70f5 100644
--- 
a/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestSecureExport.java
+++ 
b/hbase-endpoint/src/test/java/org/apache/hadoop/hbase/coprocessor/TestSecureExport.java
@@ -22,8 +22,8 @@ import static org.junit.Assert.assertEquals;
 import java.io.File;
 import java.io.IOException;
 import java.security.PrivilegedExceptionAction;
+import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import org.apache.hadoop.conf.Configuration;
@@ -39,7 +39,6 @@ import 
org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
 import org.apache.hadoop.hbase.client.Put;
-import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.client.Table;
@@ -80,6 +79,7 @@ import org.junit.rules.TestName;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import org.apache.hbase.thirdparty.com.google.common.collect.Iterables;
 import org.apache.hbase.thirdparty.com.google.protobuf.ServiceException;
 
 import 
org.apache.hadoop.hbase.shaded.protobuf.generated.VisibilityLabelsProtos;
@@ -338,7 +338,7 @@ public class TestSecureExport {
       return null;
     };
     SecureTestUtil.verifyAllowed(putAction, getUserByLogin(USER_OWNER));
-    List<Pair<List<String>, Integer>> labelsAndRowCounts = new LinkedList<>();
+    List<Pair<List<String>, Integer>> labelsAndRowCounts = new ArrayList<>(5);
     labelsAndRowCounts.add(new Pair<>(Arrays.asList(SECRET), 1));
     labelsAndRowCounts.add(new Pair<>(Arrays.asList(PRIVATE, CONFIDENTIAL), 
1));
     labelsAndRowCounts.add(new Pair<>(Arrays.asList(TOPSECRET), 1));
@@ -389,11 +389,7 @@ public class TestSecureExport {
         try (Connection conn = 
ConnectionFactory.createConnection(UTIL.getConfiguration());
           Table table = conn.getTable(importHtd.getTableName());
           ResultScanner scanner = table.getScanner(scan)) {
-          int count = 0;
-          for (Result r : scanner) {
-            ++count;
-          }
-          assertEquals(rowCount, count);
+          assertEquals(rowCount, Iterables.size(scanner));
         }
         return null;
       };

Reply via email to