You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2022/04/03 15:22:35 UTC

[hbase] branch branch-2 updated (4311974 -> ab9ccab)

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

zhangduo pushed a change to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git.


    from 4311974  HBASE-26811 Secondary replica may be disabled for read incorrectly forever (#4308)
     new 03b5529  HBASE-26916 Fix missing braces warnings in DefaultVisibilityExpressionResolver (#4313)
     new 0b87621  HBASE-26919 Rewrite the counting rows part in TestFromClientSide4 (#4314)
     new 1560b41  HBASE-26920 Fix missing braces warnings in TestProcedureMember (#4315)
     new ab9ccab  HBASE-26921 Rewrite the counting cells part in TestMultiVersions (#4316)

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../DefaultVisibilityExpressionResolver.java       |   7 +-
 .../org/apache/hadoop/hbase/TestMultiVersions.java | 106 +++++++--------------
 .../hadoop/hbase/client/TestFromClientSide4.java   |  12 +--
 .../hbase/procedure/TestProcedureMember.java       |  15 ++-
 4 files changed, 50 insertions(+), 90 deletions(-)

[hbase] 01/04: HBASE-26916 Fix missing braces warnings in DefaultVisibilityExpressionResolver (#4313)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 03b5529febefe9f657131ddcc8be1e4b761d2093
Author: Duo Zhang <zh...@apache.org>
AuthorDate: Sun Apr 3 22:42:17 2022 +0800

    HBASE-26916 Fix missing braces warnings in DefaultVisibilityExpressionResolver (#4313)
    
    Signed-off-by: Xiaolin Ha <ha...@apache.org>
    (cherry picked from commit c4ff355915f27bacefe1c8f9fa1a7c4cab6a825b)
---
 .../hbase/mapreduce/DefaultVisibilityExpressionResolver.java       | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/DefaultVisibilityExpressionResolver.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/DefaultVisibilityExpressionResolver.java
index 07f05dd..620c02e 100644
--- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/DefaultVisibilityExpressionResolver.java
+++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/DefaultVisibilityExpressionResolver.java
@@ -98,7 +98,9 @@ public class DefaultVisibilityExpressionResolver implements VisibilityExpression
       } catch (IOException e) {
         LOG.error("Error scanning 'labels' table", e);
       } finally {
-        if (scanner != null) scanner.close();
+        if (scanner != null) {
+          scanner.close();
+        }
       }
     } catch (IOException ioe) {
       LOG.error("Failed reading 'labels' tags", ioe);
@@ -111,12 +113,13 @@ public class DefaultVisibilityExpressionResolver implements VisibilityExpression
           LOG.warn("Error closing 'labels' table", ioe);
         }
       }
-      if (connection != null)
+      if (connection != null) {
         try {
           connection.close();
         } catch (IOException ioe) {
           LOG.warn("Failed close of temporary connection", ioe);
         }
+      }
     }
   }
 

[hbase] 03/04: HBASE-26920 Fix missing braces warnings in TestProcedureMember (#4315)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 1560b4149ca89a643eef64a283662777c99b3813
Author: Duo Zhang <zh...@apache.org>
AuthorDate: Sun Apr 3 22:53:50 2022 +0800

    HBASE-26920 Fix missing braces warnings in TestProcedureMember (#4315)
    
    Signed-off-by: Xiaolin Ha <ha...@apache.org>
    (cherry picked from commit 78676bb85e826314e2ebd11524b05428481a0b51)
---
 .../hadoop/hbase/procedure/TestProcedureMember.java       | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/TestProcedureMember.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/TestProcedureMember.java
index 61146a6..a4423aa 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/TestProcedureMember.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/TestProcedureMember.java
@@ -48,6 +48,8 @@ import org.mockito.Mockito;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
+import org.apache.hbase.thirdparty.com.google.common.io.Closeables;
+
 /**
  * Test the procedure member, and it's error handling mechanisms.
  */
@@ -77,14 +79,9 @@ public class TestProcedureMember {
    * Reset all the mock objects
    */
   @After
-  public void resetTest() {
+  public void resetTest() throws IOException {
     reset(mockListener, mockBuilder, mockMemberComms);
-    if (member != null)
-      try {
-        member.close();
-      } catch (IOException e) {
-        e.printStackTrace();
-      }
+    Closeables.close(member, true);
   }
 
   /**
@@ -273,7 +270,7 @@ public class TestProcedureMember {
 
   /**
    * Handle failures if a member's commit phase fails.
-   *
+   * <p/>
    * NOTE: This is the core difference that makes this different from traditional 2PC.  In true
    * 2PC the transaction is committed just before the coordinator sends commit messages to the
    * member.  Members are then responsible for reading its TX log.  This implementation actually
@@ -314,7 +311,7 @@ public class TestProcedureMember {
 
   /**
    * Handle Failures if a member's commit phase succeeds but notification to coordinator fails
-   *
+   * <p/>
    * NOTE: This is the core difference that makes this different from traditional 2PC.  In true
    * 2PC the transaction is committed just before the coordinator sends commit messages to the
    * member.  Members are then responsible for reading its TX log.  This implementation actually

[hbase] 04/04: HBASE-26921 Rewrite the counting cells part in TestMultiVersions (#4316)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit ab9ccabe8fdab211451b74fd7dea52e23b7a7639
Author: Duo Zhang <zh...@apache.org>
AuthorDate: Sun Apr 3 22:54:00 2022 +0800

    HBASE-26921 Rewrite the counting cells part in TestMultiVersions (#4316)
    
    Signed-off-by: Xiaolin Ha <ha...@apache.org>
    (cherry picked from commit 3e09e87fada270fa93e36f9aeb04a9cc4106a2ee)
---
 .../org/apache/hadoop/hbase/TestMultiVersions.java | 106 +++++++--------------
 1 file changed, 35 insertions(+), 71 deletions(-)

diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMultiVersions.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMultiVersions.java
index fe645bb..a31a673 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMultiVersions.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMultiVersions.java
@@ -17,8 +17,10 @@
  */
 package org.apache.hadoop.hbase;
 
+import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
@@ -49,6 +51,8 @@ import org.junit.rules.TestName;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import org.apache.hbase.thirdparty.com.google.common.collect.Iterables;
+
 /**
  * Port of old TestScanMultipleVersions, TestTimestamp and TestGetRowVersions
  * from old testing framework to {@link HBaseTestingUtility}.
@@ -125,6 +129,7 @@ public class TestMultiVersions {
 
   /**
    * Verifies versions across a cluster restart.
+   * <p/>
    * Port of old TestGetRowVersions test to here so can better utilize the spun
    * up cluster running more than a single test per spin up.  Keep old tests'
    * crazyness.
@@ -165,26 +170,26 @@ public class TestMultiVersions {
     Result r = table.get(get);
     assertNotNull(r);
     assertFalse(r.isEmpty());
-    assertTrue(r.size() == 1);
+    assertEquals(1, r.size());
     byte [] value = r.getValue(contents, contents);
-    assertTrue(value.length != 0);
+    assertNotEquals(0, value.length);
     assertTrue(Bytes.equals(value, value2));
     // Now check getRow with multiple versions
     get = new Get(row);
     get.setMaxVersions();
     r = table.get(get);
-    assertTrue(r.size() == 2);
+    assertEquals(2, r.size());
     value = r.getValue(contents, contents);
-    assertTrue(value.length != 0);
-    assertTrue(Bytes.equals(value, value2));
+    assertNotEquals(0, value.length);
+    assertArrayEquals(value, value2);
     NavigableMap<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>> map =
       r.getMap();
     NavigableMap<byte[], NavigableMap<Long, byte[]>> familyMap =
       map.get(contents);
     NavigableMap<Long, byte[]> versionMap = familyMap.get(contents);
-    assertTrue(versionMap.size() == 2);
-    assertTrue(Bytes.equals(value1, versionMap.get(timestamp1)));
-    assertTrue(Bytes.equals(value2, versionMap.get(timestamp2)));
+    assertEquals(2, versionMap.size());
+    assertArrayEquals(value1, versionMap.get(timestamp1));
+    assertArrayEquals(value2, versionMap.get(timestamp2));
     table.close();
   }
 
@@ -218,11 +223,11 @@ public class TestMultiVersions {
 
     for (int i = 0; i < startKeys.length; i++) {
       if (i == 0) {
-        assertTrue(Bytes.equals(HConstants.EMPTY_START_ROW, startKeys[i]));
-        assertTrue(Bytes.equals(endKeys[i], splitRows[0]));
+        assertArrayEquals(HConstants.EMPTY_START_ROW, startKeys[i]);
+        assertArrayEquals(endKeys[i], splitRows[0]);
       } else if (i == 1) {
-        assertTrue(Bytes.equals(splitRows[0], startKeys[i]));
-        assertTrue(Bytes.equals(endKeys[i], HConstants.EMPTY_END_ROW));
+        assertArrayEquals(splitRows[0], startKeys[i]);
+        assertArrayEquals(endKeys[i], HConstants.EMPTY_END_ROW);
       }
     }
     // Insert data
@@ -242,100 +247,59 @@ public class TestMultiVersions {
         get.addFamily(HConstants.CATALOG_FAMILY);
         get.setTimestamp(timestamp[j]);
         Result result = table.get(get);
-        int cellCount = 0;
-        for(@SuppressWarnings("unused")Cell kv : result.listCells()) {
-          cellCount++;
-        }
-        assertTrue(cellCount == 1);
+        int cellCount = result.rawCells().length;
+        assertEquals(1, cellCount);
       }
     }
 
     // Case 1: scan with LATEST_TIMESTAMP. Should get two rows
-    int count = 0;
+    int count;
     Scan scan = new Scan();
     scan.addFamily(HConstants.CATALOG_FAMILY);
-    ResultScanner s = table.getScanner(scan);
-    try {
-      for (Result rr = null; (rr = s.next()) != null;) {
-        System.out.println(rr.toString());
-        count += 1;
-      }
-      assertEquals("Number of rows should be 2", 2, count);
-    } finally {
-      s.close();
+    try (ResultScanner s = table.getScanner(scan)) {
+      count = Iterables.size(s);
     }
+    assertEquals("Number of rows should be 2", 2, count);
 
     // Case 2: Scan with a timestamp greater than most recent timestamp
     // (in this case > 1000 and < LATEST_TIMESTAMP. Should get 2 rows.
-
-    count = 0;
     scan = new Scan();
     scan.setTimeRange(1000L, Long.MAX_VALUE);
     scan.addFamily(HConstants.CATALOG_FAMILY);
-
-    s = table.getScanner(scan);
-    try {
-      while (s.next() != null) {
-        count += 1;
-      }
-      assertEquals("Number of rows should be 2", 2, count);
-    } finally {
-      s.close();
+    try (ResultScanner s = table.getScanner(scan)) {
+      count = Iterables.size(s);
     }
+    assertEquals("Number of rows should be 2", 2, count);
 
     // Case 3: scan with timestamp equal to most recent timestamp
     // (in this case == 1000. Should get 2 rows.
-
-    count = 0;
     scan = new Scan();
     scan.setTimestamp(1000L);
     scan.addFamily(HConstants.CATALOG_FAMILY);
-
-    s = table.getScanner(scan);
-    try {
-      while (s.next() != null) {
-        count += 1;
-      }
-      assertEquals("Number of rows should be 2", 2, count);
-    } finally {
-      s.close();
+    try (ResultScanner s = table.getScanner(scan)) {
+      count = Iterables.size(s);
     }
+    assertEquals("Number of rows should be 2", 2, count);
 
     // Case 4: scan with timestamp greater than first timestamp but less than
     // second timestamp (100 < timestamp < 1000). Should get 2 rows.
-
-    count = 0;
     scan = new Scan();
     scan.setTimeRange(100L, 1000L);
     scan.addFamily(HConstants.CATALOG_FAMILY);
-
-    s = table.getScanner(scan);
-    try {
-      while (s.next() != null) {
-        count += 1;
-      }
-      assertEquals("Number of rows should be 2", 2, count);
-    } finally {
-      s.close();
+    try (ResultScanner s = table.getScanner(scan)) {
+      count = Iterables.size(s);
     }
+    assertEquals("Number of rows should be 2", 2, count);
 
     // Case 5: scan with timestamp equal to first timestamp (100)
     // Should get 2 rows.
-
-    count = 0;
     scan = new Scan();
     scan.setTimestamp(100L);
     scan.addFamily(HConstants.CATALOG_FAMILY);
-
-    s = table.getScanner(scan);
-    try {
-      while (s.next() != null) {
-        count += 1;
-      }
-      assertEquals("Number of rows should be 2", 2, count);
-    } finally {
-      s.close();
+    try (ResultScanner s = table.getScanner(scan)) {
+      count = Iterables.size(s);
     }
+    assertEquals("Number of rows should be 2", 2, count);
   }
 
 }

[hbase] 02/04: HBASE-26919 Rewrite the counting rows part in TestFromClientSide4 (#4314)

Posted by zh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 0b87621a38594226adfd6ed0161358201901804a
Author: Duo Zhang <zh...@apache.org>
AuthorDate: Sun Apr 3 22:42:49 2022 +0800

    HBASE-26919 Rewrite the counting rows part in TestFromClientSide4 (#4314)
    
    Signed-off-by: Xiaolin Ha <ha...@apache.org>
    (cherry picked from commit 4e12eee53176df9c09737a738f2645967080f449)
---
 .../org/apache/hadoop/hbase/client/TestFromClientSide4.java  | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide4.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide4.java
index 338266f..f66ba50f 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide4.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide4.java
@@ -61,6 +61,8 @@ import org.junit.runners.Parameterized;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import org.apache.hbase.thirdparty.com.google.common.collect.Iterables;
+
 /**
  * Run tests that use the HBase clients; {@link Table}.
  * Sets up the HBase mini cluster once at start and runs through all client tests.
@@ -1041,10 +1043,7 @@ public class TestFromClientSide4 extends FromClientSideBase {
       Scan scan = new Scan();
       scan.addFamily(CONTENTS_FAMILY);
       try (ResultScanner scanner = table.getScanner(scan)) {
-        int nbRows = 0;
-        for (@SuppressWarnings("unused") Result row : scanner) {
-          nbRows++;
-        }
+        int nbRows = Iterables.size(scanner);
         assertEquals(NB_BATCH_ROWS, nbRows);
       }
     }
@@ -1070,10 +1069,7 @@ public class TestFromClientSide4 extends FromClientSideBase {
       Scan scan = new Scan();
       scan.addFamily(CONTENTS_FAMILY);
       try (ResultScanner scanner = table.getScanner(scan)) {
-        int nbRows = 0;
-        for (@SuppressWarnings("unused") Result row : scanner) {
-          nbRows++;
-        }
+        int nbRows = Iterables.size(scanner);
         assertEquals(NB_BATCH_ROWS * 10, nbRows);
       }
     }