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/11/07 16:23:59 UTC

[hbase] branch branch-2.4 updated: HBASE-27443 Use java11 in the general check of our jenkins job (#4845)

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


The following commit(s) were added to refs/heads/branch-2.4 by this push:
     new 4605c323ccd HBASE-27443 Use java11 in the general check of our jenkins job (#4845)
4605c323ccd is described below

commit 4605c323ccd97de14b5718c980011a1200398c24
Author: Duo Zhang <zh...@apache.org>
AuthorDate: Mon Nov 7 23:14:26 2022 +0800

    HBASE-27443 Use java11 in the general check of our jenkins job (#4845)
    
    Signed-off-by: Guanghao Zhang <zg...@apache.org>
    (cherry picked from commit 5c6ff7dc47b5340ff02e0dec144424ab91407e07)
---
 dev-support/Jenkinsfile                            |  4 +-
 dev-support/Jenkinsfile_GitHub                     |  2 +-
 hbase-build-configuration/pom.xml                  | 53 +++++++++-------------
 .../hadoop/hbase/util/BloomFilterFactory.java      |  2 +-
 .../hadoop/hbase/util/ServerCommandLine.java       | 14 ++----
 .../apache/hadoop/hbase/client/TestMetaCache.java  | 16 ++-----
 .../favored/TestFavoredNodeAssignmentHelper.java   | 13 +++---
 .../hadoop/hbase/regionserver/TestScanner.java     | 15 +++---
 .../TestNonHBaseReplicationEndpoint.java           | 11 ++---
 .../regionserver/TestBasicWALEntryStream.java      |  6 ++-
 .../regionserver/TestReplicationSourceManager.java |  6 ++-
 pom.xml                                            |  2 +-
 12 files changed, 63 insertions(+), 81 deletions(-)

diff --git a/dev-support/Jenkinsfile b/dev-support/Jenkinsfile
index 2098fff8008..8bbb00ebbb9 100644
--- a/dev-support/Jenkinsfile
+++ b/dev-support/Jenkinsfile
@@ -202,7 +202,9 @@ pipeline {
           environment {
             BASEDIR = "${env.WORKSPACE}/component"
             TESTS = "${env.SHALLOW_CHECKS}"
-            SET_JAVA_HOME = '/usr/lib/jvm/java-8'
+            SET_JAVA_HOME = "/usr/lib/jvm/java-11"
+            // Activates hadoop 3.0 profile in maven runs.
+            HADOOP_PROFILE = '3.0'
             OUTPUT_DIR_RELATIVE = "${env.OUTPUT_DIR_RELATIVE_GENERAL}"
             OUTPUT_DIR = "${env.WORKSPACE}/${env.OUTPUT_DIR_RELATIVE_GENERAL}"
             ASF_NIGHTLIES_GENERAL_CHECK_BASE="${ASF_NIGHTLIES_BASE}/${OUTPUT_DIR_RELATIVE}"
diff --git a/dev-support/Jenkinsfile_GitHub b/dev-support/Jenkinsfile_GitHub
index 351f1f30b54..ac548757df2 100644
--- a/dev-support/Jenkinsfile_GitHub
+++ b/dev-support/Jenkinsfile_GitHub
@@ -78,7 +78,7 @@ pipeline {
                     environment {
                         // customized per parallel stage
                         PLUGINS = "${GENERAL_CHECK_PLUGINS}"
-                        SET_JAVA_HOME = '/usr/lib/jvm/java-8'
+                        SET_JAVA_HOME = "/usr/lib/jvm/java-11"
                         WORKDIR_REL = "${WORKDIR_REL_GENERAL_CHECK}"
                         // identical for all parallel stages
                         WORKDIR = "${WORKSPACE}/${WORKDIR_REL}"
diff --git a/hbase-build-configuration/pom.xml b/hbase-build-configuration/pom.xml
index e9bb67205fc..66dc459ced8 100644
--- a/hbase-build-configuration/pom.xml
+++ b/hbase-build-configuration/pom.xml
@@ -69,31 +69,6 @@
       <activation>
         <activeByDefault>false</activeByDefault>
       </activation>
-      <properties>
-        <!-- https://errorprone.info/docs/installation Maven section has details -->
-        <!-- required when compiling with JDK 8 -->
-        <javac.version>9+181-r4173-1</javac.version>
-      </properties>
-      <dependencies>
-        <dependency>
-          <groupId>com.google.errorprone</groupId>
-          <artifactId>error_prone_core</artifactId>
-          <version>${error-prone.version}</version>
-          <scope>provided</scope>
-          <exclusions>
-            <exclusion>
-              <groupId>com.google.code.findbugs</groupId>
-              <artifactId>jsr305</artifactId>
-            </exclusion>
-          </exclusions>
-        </dependency>
-        <dependency>
-          <groupId>com.google.errorprone</groupId>
-          <artifactId>javac</artifactId>
-          <version>${javac.version}</version>
-          <scope>provided</scope>
-        </dependency>
-      </dependencies>
       <build>
         <plugins>
           <!-- Turn on error-prone -->
@@ -101,17 +76,12 @@
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-compiler-plugin</artifactId>
             <configuration>
-              <source>${compileSource}</source>
-              <target>${compileSource}</target>
-              <!-- required when compiling with JDK 8 -->
-              <fork>true</fork>
+              <release>${releaseTarget}</release>
               <showWarnings>true</showWarnings>
               <compilerArgs>
                 <arg>-XDcompilePolicy=simple</arg>
                 <!-- All -Xep need to be on single line see: https://github.com/google/error-prone/pull/1115 -->
-                <arg>-Xplugin:ErrorProne -XepDisableWarningsInGeneratedCode -Xep:FallThrough:OFF -Xep:MutablePublicArray:OFF -Xep:ClassNewInstance:ERROR -Xep:MissingDefault:ERROR</arg>
-                <!-- Required when compiling with JDK 8 -->
-                <arg>-J-Xbootclasspath/p:${settings.localRepository}/com/google/errorprone/javac/${javac.version}/javac-${javac.version}.jar</arg>
+                <arg>-Xplugin:ErrorProne -XepDisableWarningsInGeneratedCode -XepExcludedPaths:.*/target/.* -Xep:FallThrough:OFF -Xep:MutablePublicArray:OFF -Xep:ClassNewInstance:ERROR -Xep:MissingDefault:ERROR -Xep:BanJNDI:WARN</arg>
               </compilerArgs>
               <annotationProcessorPaths>
                 <path>
@@ -122,6 +92,25 @@
               </annotationProcessorPaths>
             </configuration>
           </plugin>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-enforcer-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>jdk11-required</id>
+                <goals>
+                  <goal>enforce</goal>
+                </goals>
+                <configuration>
+                  <rules>
+                    <requireJavaVersion>
+                      <version>[11,)</version>
+                    </requireJavaVersion>
+                  </rules>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
         </plugins>
       </build>
     </profile>
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/BloomFilterFactory.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/BloomFilterFactory.java
index 806c615ea57..08f5cb5df33 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/BloomFilterFactory.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/BloomFilterFactory.java
@@ -195,4 +195,4 @@ public final class BloomFilterFactory {
     writer.addInlineBlockWriter(bloomWriter);
     return bloomWriter;
   }
-};
+}
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ServerCommandLine.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ServerCommandLine.java
index b6badc79097..b257a938337 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ServerCommandLine.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ServerCommandLine.java
@@ -36,21 +36,17 @@ import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;
+
 /**
  * Base class for command lines that start up various HBase daemons.
  */
 @InterfaceAudience.Private
 public abstract class ServerCommandLine extends Configured implements Tool {
   private static final Logger LOG = LoggerFactory.getLogger(ServerCommandLine.class);
-  @SuppressWarnings("serial")
-  private static final Set<String> DEFAULT_SKIP_WORDS = new HashSet<String>() {
-    {
-      add("secret");
-      add("passwd");
-      add("password");
-      add("credential");
-    }
-  };
+
+  private static final Set<String> DEFAULT_SKIP_WORDS =
+    ImmutableSet.of("secret", "passwd", "password", "credential");
 
   /**
    * Implementing subclasses should return a usage string to print out.
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaCache.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaCache.java
index a7897ae1c61..777bb24d92b 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaCache.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaCache.java
@@ -24,7 +24,7 @@ import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.io.IOException;
-import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.CallQueueTooBigException;
@@ -266,16 +266,10 @@ public class TestMetaCache {
   }
 
   public static List<Throwable> metaCachePreservingExceptions() {
-    return new ArrayList<Throwable>() {
-      {
-        add(new RegionOpeningException(" "));
-        add(new RegionTooBusyException("Some old message"));
-        add(new RpcThrottlingException(" "));
-        add(new MultiActionResultTooLarge(" "));
-        add(new RetryImmediatelyException(" "));
-        add(new CallQueueTooBigException());
-      }
-    };
+    return Arrays.asList(new RegionOpeningException(" "),
+      new RegionTooBusyException("Some old message"), new RpcThrottlingException(" "),
+      new MultiActionResultTooLarge(" "), new RetryImmediatelyException(" "),
+      new CallQueueTooBigException());
   }
 
   public static class RegionServerWithFakeRpcServices extends HRegionServer {
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/favored/TestFavoredNodeAssignmentHelper.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/favored/TestFavoredNodeAssignmentHelper.java
index d594cb6b9c4..f3e437ec02f 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/favored/TestFavoredNodeAssignmentHelper.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/favored/TestFavoredNodeAssignmentHelper.java
@@ -364,13 +364,12 @@ public class TestFavoredNodeAssignmentHelper {
     regionMap.put(regionsOnRack1, 1);
     regionMap.put(regionsOnRack2, 2);
     regionMap.put(regionsOnRack3, 3);
-    assertTrue(printProportions(firstRackSize, secondRackSize, thirdRackSize, regionsOnRack1,
-      regionsOnRack2, regionsOnRack3), rackMap.get(firstRackSize) == regionMap.get(regionsOnRack1));
-    assertTrue(printProportions(firstRackSize, secondRackSize, thirdRackSize, regionsOnRack1,
-      regionsOnRack2, regionsOnRack3),
-      rackMap.get(secondRackSize) == regionMap.get(regionsOnRack2));
-    assertTrue(printProportions(firstRackSize, secondRackSize, thirdRackSize, regionsOnRack1,
-      regionsOnRack2, regionsOnRack3), rackMap.get(thirdRackSize) == regionMap.get(regionsOnRack3));
+    assertEquals(printProportions(firstRackSize, secondRackSize, thirdRackSize, regionsOnRack1,
+      regionsOnRack2, regionsOnRack3), rackMap.get(firstRackSize), regionMap.get(regionsOnRack1));
+    assertEquals(printProportions(firstRackSize, secondRackSize, thirdRackSize, regionsOnRack1,
+      regionsOnRack2, regionsOnRack3), rackMap.get(secondRackSize), regionMap.get(regionsOnRack2));
+    assertEquals(printProportions(firstRackSize, secondRackSize, thirdRackSize, regionsOnRack1,
+      regionsOnRack2, regionsOnRack3), rackMap.get(thirdRackSize), regionMap.get(regionsOnRack3));
   }
 
   private String printProportions(int firstRackSize, int secondRackSize, int thirdRackSize,
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestScanner.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestScanner.java
index d6edb1cf7c4..941d1662804 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestScanner.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestScanner.java
@@ -538,14 +538,15 @@ public class TestScanner {
     }
   }
 
-  /*
-   * @param hri Region
+  /**
+   * Count table.
+   * @param hri        Region
    * @param flushIndex At what row we start the flush.
    * @param concurrent if the flush should be concurrent or sync.
    * @return Count of rows found.
    */
   private int count(final Table countTable, final int flushIndex, boolean concurrent)
-    throws IOException {
+    throws Exception {
     LOG.info("Taking out counting scan");
     Scan scan = new Scan();
     for (byte[] qualifier : EXPLICIT_COLS) {
@@ -573,10 +574,10 @@ public class TestScanner {
             }
           }
         };
-        if (concurrent) {
-          t.start(); // concurrently flush.
-        } else {
-          t.run(); // sync flush
+        t.start();
+        if (!concurrent) {
+          // sync flush
+          t.join();
         }
         LOG.info("Continuing on after kicking off background flush");
         justFlushed = true;
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestNonHBaseReplicationEndpoint.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestNonHBaseReplicationEndpoint.java
index ac2bde4d132..080489f9702 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestNonHBaseReplicationEndpoint.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestNonHBaseReplicationEndpoint.java
@@ -19,8 +19,6 @@ package org.apache.hadoop.hbase.replication;
 
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -45,6 +43,8 @@ import org.junit.ClassRule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
+import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableMap;
+
 @Category({ MediumTests.class, ReplicationTests.class })
 public class TestNonHBaseReplicationEndpoint {
 
@@ -86,11 +86,8 @@ public class TestNonHBaseReplicationEndpoint {
 
     ReplicationPeerConfig peerConfig = ReplicationPeerConfig.newBuilder()
       .setReplicationEndpointImpl(NonHBaseReplicationEndpoint.class.getName())
-      .setReplicateAllUserTables(false).setTableCFsMap(new HashMap<TableName, List<String>>() {
-        {
-          put(tableName, new ArrayList<>());
-        }
-      }).build();
+      .setReplicateAllUserTables(false)
+      .setTableCFsMap(ImmutableMap.of(tableName, new ArrayList<>())).build();
 
     ADMIN.addReplicationPeer("1", peerConfig);
     loadData(table);
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestBasicWALEntryStream.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestBasicWALEntryStream.java
index 8601bff885c..eda89b232c3 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestBasicWALEntryStream.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestBasicWALEntryStream.java
@@ -611,7 +611,8 @@ public abstract class TestBasicWALEntryStream extends WALEntryStreamTestBase {
     localLogQueue.enqueueLog(emptyLog, fakeWalGroupId);
     ReplicationSourceWALReader reader = new ReplicationSourceWALReader(fs, conf, localLogQueue, 0,
       getDummyFilter(), source, fakeWalGroupId);
-    reader.run();
+    reader.start();
+    reader.join();
     // ReplicationSourceWALReaderThread#handleEofException method will
     // remove empty log from logQueue.
     assertEquals(0, localLogQueue.getQueueSize(fakeWalGroupId));
@@ -650,7 +651,8 @@ public abstract class TestBasicWALEntryStream extends WALEntryStreamTestBase {
       getDummyFilter(), source, fakeWalGroupId);
     assertEquals("Initial log queue size is not correct", 2,
       localLogQueue.getQueueSize(fakeWalGroupId));
-    reader.run();
+    reader.start();
+    reader.join();
 
     // remove empty log from logQueue.
     assertEquals(0, localLogQueue.getQueueSize(fakeWalGroupId));
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java
index 02bd3f6fb9c..21a7f27d727 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java
@@ -381,7 +381,8 @@ public abstract class TestReplicationSourceManager {
       ReplicationFactory.getReplicationPeers(s1.getZooKeeper(), s1.getConfiguration());
     rp1.init();
     NodeFailoverWorker w1 = manager.new NodeFailoverWorker(server.getServerName());
-    w1.run();
+    w1.start();
+    w1.join();
     assertEquals(1, manager.getWalsByIdRecoveredQueues().size());
     String id = "1-" + server.getServerName().getServerName();
     assertEquals(files, manager.getWalsByIdRecoveredQueues().get(id).get(group));
@@ -402,7 +403,8 @@ public abstract class TestReplicationSourceManager {
     rq.addWAL(server.getServerName(), "2", group + ".log2");
 
     NodeFailoverWorker w1 = manager.new NodeFailoverWorker(server.getServerName());
-    w1.run();
+    w1.start();
+    w1.join();
 
     // The log of the unknown peer should be removed from zk
     for (String peer : manager.getAllQueues()) {
diff --git a/pom.xml b/pom.xml
index 5ef25340221..e8c6d144af5 100755
--- a/pom.xml
+++ b/pom.xml
@@ -611,7 +611,7 @@
     -->
     <checkstyle.version>8.29</checkstyle.version>
     <exec.maven.version>1.6.0</exec.maven.version>
-    <error-prone.version>2.10.0</error-prone.version>
+    <error-prone.version>2.16</error-prone.version>
     <jamon.plugin.version>2.4.2</jamon.plugin.version>
     <lifecycle.mapping.version>1.0.0</lifecycle.mapping.version>
     <maven.antrun.version>1.8</maven.antrun.version>