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:20:27 UTC

[hbase] branch branch-2.4 updated (d9a32f9 -> 18c55d2)

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

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


    from d9a32f9  HBASE-26811 Secondary replica may be disabled for read incorrectly forever (#4310)
     new 9273474  HBASE-26916 Fix missing braces warnings in DefaultVisibilityExpressionResolver (#4313)
     new a7f8e2a  HBASE-26919 Rewrite the counting rows part in TestFromClientSide4 (#4314)
     new 1b768cd  HBASE-26920 Fix missing braces warnings in TestProcedureMember (#4315)
     new 18c55d2  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] 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.4
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit a7f8e2a5b1e4f6311c0120bc4cb3419854bf8331
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);
       }
     }

[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.4
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 18c55d20d9c2ff6b6881be29ea1cded715b01386
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] 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.4
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 1b768cd48d2367727499fd57a80f34e9d4360ed6
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] 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.4
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 92734749dd8807f12b2198211c57b44a2e1436bd
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);
         }
+      }
     }
   }