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 2017/12/18 12:46:39 UTC

[07/26] hbase git commit: HBASE-19498 Fix findbugs and error-prone warnings in hbase-client (branch-2)

http://git-wip-us.apache.org/repos/asf/hbase/blob/59529a78/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestSnapshotFromAdmin.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestSnapshotFromAdmin.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestSnapshotFromAdmin.java
index b2c011c..6c9aadd 100644
--- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestSnapshotFromAdmin.java
+++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestSnapshotFromAdmin.java
@@ -71,7 +71,7 @@ public class TestSnapshotFromAdmin {
       ignoreExpectedTime += HConstants.RETRY_BACKOFF[i] * pauseTime;
     }
     // the correct wait time, capping at the maxTime/tries + fudge room
-    final long time = pauseTime * 3 + ((maxWaitTime / numRetries) * 3) + 300;
+    final long time = pauseTime * 3L + ((maxWaitTime / numRetries) * 3) + 300L;
     assertTrue("Capped snapshot wait time isn't less that the uncapped backoff time "
         + "- further testing won't prove anything.", time < ignoreExpectedTime);
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/59529a78/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.java
index d2a5b68..3c159b2 100644
--- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.java
+++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.java
@@ -113,7 +113,7 @@ public class TestTableDescriptorBuilder {
     assertEquals(v, deserializedHtd.getMaxFileSize());
     assertTrue(deserializedHtd.isReadOnly());
     assertEquals(Durability.ASYNC_WAL, deserializedHtd.getDurability());
-    assertEquals(deserializedHtd.getRegionReplication(), 2);
+    assertEquals(2, deserializedHtd.getRegionReplication());
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/59529a78/hbase-client/src/test/java/org/apache/hadoop/hbase/security/TestHBaseSaslRpcClient.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/security/TestHBaseSaslRpcClient.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/security/TestHBaseSaslRpcClient.java
index 282dc28..8d2d1a1 100644
--- a/hbase-client/src/test/java/org/apache/hadoop/hbase/security/TestHBaseSaslRpcClient.java
+++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/security/TestHBaseSaslRpcClient.java
@@ -30,8 +30,7 @@ import static org.mockito.Mockito.when;
 import org.apache.hadoop.hbase.shaded.com.google.common.base.Strings;
 
 import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
 
 import javax.security.auth.callback.Callback;
 import javax.security.auth.callback.CallbackHandler;
@@ -100,8 +99,10 @@ public class TestHBaseSaslRpcClient {
   @Test
   public void testSaslClientCallbackHandler() throws UnsupportedCallbackException {
     final Token<? extends TokenIdentifier> token = createTokenMock();
-    when(token.getIdentifier()).thenReturn(DEFAULT_USER_NAME.getBytes());
-    when(token.getPassword()).thenReturn(DEFAULT_USER_PASSWORD.getBytes());
+    when(token.getIdentifier())
+      .thenReturn(DEFAULT_USER_NAME.getBytes(StandardCharsets.UTF_8));
+    when(token.getPassword())
+      .thenReturn(DEFAULT_USER_PASSWORD.getBytes(StandardCharsets.UTF_8));
 
     final NameCallback nameCallback = mock(NameCallback.class);
     final PasswordCallback passwordCallback = mock(PasswordCallback.class);
@@ -120,8 +121,10 @@ public class TestHBaseSaslRpcClient {
   @Test
   public void testSaslClientCallbackHandlerWithException() {
     final Token<? extends TokenIdentifier> token = createTokenMock();
-    when(token.getIdentifier()).thenReturn(DEFAULT_USER_NAME.getBytes());
-    when(token.getPassword()).thenReturn(DEFAULT_USER_PASSWORD.getBytes());
+    when(token.getIdentifier())
+      .thenReturn(DEFAULT_USER_NAME.getBytes(StandardCharsets.UTF_8));
+    when(token.getPassword())
+      .thenReturn(DEFAULT_USER_PASSWORD.getBytes(StandardCharsets.UTF_8));
     final SaslClientCallbackHandler saslClCallbackHandler = new SaslClientCallbackHandler(token);
     try {
       saslClCallbackHandler.handle(new Callback[] { mock(TextOutputCallback.class) });
@@ -291,8 +294,10 @@ public class TestHBaseSaslRpcClient {
       throws IOException {
     Token<? extends TokenIdentifier> token = createTokenMock();
     if (!Strings.isNullOrEmpty(principal) && !Strings.isNullOrEmpty(password)) {
-      when(token.getIdentifier()).thenReturn(DEFAULT_USER_NAME.getBytes());
-      when(token.getPassword()).thenReturn(DEFAULT_USER_PASSWORD.getBytes());
+      when(token.getIdentifier())
+        .thenReturn(DEFAULT_USER_NAME.getBytes(StandardCharsets.UTF_8));
+      when(token.getPassword())
+        .thenReturn(DEFAULT_USER_PASSWORD.getBytes(StandardCharsets.UTF_8));
     }
     return token;
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/59529a78/hbase-client/src/test/java/org/apache/hadoop/hbase/security/TestSaslUtil.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/security/TestSaslUtil.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/security/TestSaslUtil.java
index 6c99739..aea14a7 100644
--- a/hbase-client/src/test/java/org/apache/hadoop/hbase/security/TestSaslUtil.java
+++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/security/TestSaslUtil.java
@@ -40,20 +40,20 @@ public class TestSaslUtil {
     Map<String, String> props;
 
     props = SaslUtil.initSaslProperties("integrity");
-    assertEquals(props.get(Sasl.QOP), "auth-int");
+    assertEquals("auth-int", props.get(Sasl.QOP));
 
     props = SaslUtil.initSaslProperties("privacy,authentication");
-    assertEquals(props.get(Sasl.QOP), "auth-conf,auth");
+    assertEquals("auth-conf,auth", props.get(Sasl.QOP));
 
     props = SaslUtil.initSaslProperties("integrity,authentication,privacy");
-    assertEquals(props.get(Sasl.QOP), "auth-int,auth,auth-conf");
+    assertEquals("auth-int,auth,auth-conf", props.get(Sasl.QOP));
 
     exception.expect(IllegalArgumentException.class);
     props = SaslUtil.initSaslProperties("xyz");
-    assertEquals(props.get(Sasl.QOP), "auth");
+    assertEquals("auth", props.get(Sasl.QOP));
 
     exception.expect(IllegalArgumentException.class);
     props = SaslUtil.initSaslProperties("");
-    assertEquals(props.get(Sasl.QOP), "auth");
+    assertEquals("auth", props.get(Sasl.QOP));
   }
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/59529a78/hbase-common/src/main/java/org/apache/hadoop/hbase/ServerName.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/ServerName.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/ServerName.java
index 2c31d44..b00b707 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/ServerName.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/ServerName.java
@@ -322,10 +322,27 @@ public class ServerName implements Comparable<ServerName>, Serializable {
 
   @Override
   public int compareTo(ServerName other) {
-    int compare = this.getHostname().compareToIgnoreCase(other.getHostname());
-    if (compare != 0) return compare;
+    int compare;
+    if (other == null) {
+      return -1;
+    }
+    if (this.getHostname() == null) {
+      if (other.getHostname() != null) {
+        return 1;
+      }
+    } else {
+      if (other.getHostname() == null) {
+        return -1;
+      }
+      compare = this.getHostname().compareToIgnoreCase(other.getHostname());
+      if (compare != 0) {
+        return compare;
+      }
+    }
     compare = this.getPort() - other.getPort();
-    if (compare != 0) return compare;
+    if (compare != 0) {
+      return compare;
+    }
     return Long.compare(this.getStartcode(), other.getStartcode());
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/59529a78/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationTrackerZKImpl.java
----------------------------------------------------------------------
diff --git a/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationTrackerZKImpl.java b/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationTrackerZKImpl.java
index aa72fc5..300a93b 100644
--- a/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationTrackerZKImpl.java
+++ b/hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ReplicationTrackerZKImpl.java
@@ -101,6 +101,7 @@ public class ReplicationTrackerZKImpl extends ReplicationStateZKBase implements
      * Called when a new node has been created.
      * @param path full path of the new node
      */
+    @Override
     public void nodeCreated(String path) {
       refreshListIfRightPath(path);
     }
@@ -109,6 +110,7 @@ public class ReplicationTrackerZKImpl extends ReplicationStateZKBase implements
      * Called when a node has been deleted
      * @param path full path of the deleted node
      */
+    @Override
     public void nodeDeleted(String path) {
       if (stopper.isStopped()) {
         return;
@@ -127,6 +129,7 @@ public class ReplicationTrackerZKImpl extends ReplicationStateZKBase implements
      * Called when an existing node has a child node added or removed.
      * @param path full path of the node whose children have changed
      */
+    @Override
     public void nodeChildrenChanged(String path) {
       if (stopper.isStopped()) {
         return;
@@ -158,6 +161,7 @@ public class ReplicationTrackerZKImpl extends ReplicationStateZKBase implements
      * Called when a node has been deleted
      * @param path full path of the deleted node
      */
+    @Override
     public void nodeDeleted(String path) {
       List<String> peers = refreshPeersList(path);
       if (peers == null) {
@@ -176,6 +180,7 @@ public class ReplicationTrackerZKImpl extends ReplicationStateZKBase implements
      * Called when an existing node has a child node added or removed.
      * @param path full path of the node whose children have changed
      */
+    @Override
     public void nodeChildrenChanged(String path) {
       List<String> peers = refreshPeersList(path);
       if (peers == null) {

http://git-wip-us.apache.org/repos/asf/hbase/blob/59529a78/hbase-server/src/main/java/org/apache/hadoop/hbase/filter/FilterWrapper.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/filter/FilterWrapper.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/filter/FilterWrapper.java
index a7607be..850a2c5 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/filter/FilterWrapper.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/filter/FilterWrapper.java
@@ -51,6 +51,7 @@ final public class FilterWrapper extends Filter {
   /**
    * @return The filter serialized using pb
    */
+  @Override
   public byte[] toByteArray() throws IOException {
     FilterProtos.FilterWrapper.Builder builder =
       FilterProtos.FilterWrapper.newBuilder();
@@ -170,6 +171,7 @@ final public class FilterWrapper extends Filter {
    * @return true if and only if the fields of the filter that are serialized
    * are equal to the corresponding fields in other.  Used for testing.
    */
+  @Override
   boolean areSerializedFieldsEqual(Filter o) {
     if (o == this) return true;
     if (!(o instanceof FilterWrapper)) return false;

http://git-wip-us.apache.org/repos/asf/hbase/blob/59529a78/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/EmptyWatcher.java
----------------------------------------------------------------------
diff --git a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/EmptyWatcher.java b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/EmptyWatcher.java
index 6470faa..1ec4f1d 100644
--- a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/EmptyWatcher.java
+++ b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/EmptyWatcher.java
@@ -30,5 +30,6 @@ public class EmptyWatcher implements Watcher {
   public static final EmptyWatcher instance = new EmptyWatcher();
   private EmptyWatcher() {}
 
+  @Override
   public void process(WatchedEvent event) {}
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/59529a78/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java
----------------------------------------------------------------------
diff --git a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java
index 59fc082..9357397 100644
--- a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java
+++ b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java
@@ -24,6 +24,7 @@ import java.io.PrintWriter;
 import java.net.InetAddress;
 import java.net.NetworkInterface;
 import java.net.UnknownHostException;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.List;
@@ -155,7 +156,7 @@ public class HQuorumPeer {
     }
 
     File myIdFile = new File(dataDir, "myid");
-    PrintWriter w = new PrintWriter(myIdFile);
+    PrintWriter w = new PrintWriter(myIdFile, StandardCharsets.UTF_8.name());
     w.println(myId);
     w.close();
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/59529a78/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKLeaderManager.java
----------------------------------------------------------------------
diff --git a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKLeaderManager.java b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKLeaderManager.java
index edd2ccd..9ae3e1c 100644
--- a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKLeaderManager.java
+++ b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKLeaderManager.java
@@ -43,6 +43,7 @@ import org.apache.zookeeper.KeeperException;
 public class ZKLeaderManager extends ZKListener {
   private static final Log LOG = LogFactory.getLog(ZKLeaderManager.class);
 
+  private final Object lock = new Object();
   private final AtomicBoolean leaderExists = new AtomicBoolean();
   private String leaderZNode;
   private byte[] nodeId;
@@ -85,14 +86,14 @@ public class ZKLeaderManager extends ZKListener {
 
   private void handleLeaderChange() {
     try {
-      synchronized(leaderExists) {
+      synchronized(lock) {
         if (ZKUtil.watchAndCheckExists(watcher, leaderZNode)) {
           LOG.info("Found new leader for znode: "+leaderZNode);
           leaderExists.set(true);
         } else {
           LOG.info("Leader change, but no new leader found");
           leaderExists.set(false);
-          leaderExists.notifyAll();
+          lock.notifyAll();
         }
       }
     } catch (KeeperException ke) {
@@ -136,10 +137,10 @@ public class ZKLeaderManager extends ZKListener {
       }
 
       // wait for next chance
-      synchronized(leaderExists) {
+      synchronized(lock) {
         while (leaderExists.get() && !candidate.isStopped()) {
           try {
-            leaderExists.wait();
+            lock.wait();
           } catch (InterruptedException ie) {
             LOG.debug("Interrupted waiting on leader", ie);
           }
@@ -153,7 +154,7 @@ public class ZKLeaderManager extends ZKListener {
    */
   public void stepDownAsLeader() {
     try {
-      synchronized(leaderExists) {
+      synchronized(lock) {
         if (!leaderExists.get()) {
           return;
         }

http://git-wip-us.apache.org/repos/asf/hbase/blob/59529a78/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java
----------------------------------------------------------------------
diff --git a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java
index d8472a9..859ab48 100644
--- a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java
+++ b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKUtil.java
@@ -19,11 +19,14 @@
 package org.apache.hadoop.hbase.zookeeper;
 
 import java.io.BufferedReader;
+import java.io.BufferedWriter;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.net.InetSocketAddress;
 import java.net.Socket;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Deque;
@@ -1904,8 +1907,10 @@ public class ZKUtil {
       socket.connect(sockAddr, timeout);
 
       socket.setSoTimeout(timeout);
-      try (PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
-          BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {
+      try (PrintWriter out = new PrintWriter(new BufferedWriter(
+          new OutputStreamWriter(socket.getOutputStream(), StandardCharsets.UTF_8)), true);
+          BufferedReader in = new BufferedReader(
+              new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8))) {
         out.println("stat");
         out.flush();
         ArrayList<String> res = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/hbase/blob/59529a78/hbase-zookeeper/src/test/java/org/apache/hadoop/hbase/zookeeper/TestZKUtil.java
----------------------------------------------------------------------
diff --git a/hbase-zookeeper/src/test/java/org/apache/hadoop/hbase/zookeeper/TestZKUtil.java b/hbase-zookeeper/src/test/java/org/apache/hadoop/hbase/zookeeper/TestZKUtil.java
index db96392..2ea70d6 100644
--- a/hbase-zookeeper/src/test/java/org/apache/hadoop/hbase/zookeeper/TestZKUtil.java
+++ b/hbase-zookeeper/src/test/java/org/apache/hadoop/hbase/zookeeper/TestZKUtil.java
@@ -48,7 +48,7 @@ public class TestZKUtil {
     String node = "/hbase/testUnsecure";
     ZKWatcher watcher = new ZKWatcher(conf, node, null, false);
     List<ACL> aclList = ZKUtil.createACL(watcher, node, false);
-    Assert.assertEquals(aclList.size(), 1);
+    Assert.assertEquals(1, aclList.size());
     Assert.assertTrue(aclList.contains(Ids.OPEN_ACL_UNSAFE.iterator().next()));
   }
 
@@ -59,7 +59,7 @@ public class TestZKUtil {
     String node = "/hbase/testSecuritySingleSuperuser";
     ZKWatcher watcher = new ZKWatcher(conf, node, null, false);
     List<ACL> aclList = ZKUtil.createACL(watcher, node, true);
-    Assert.assertEquals(aclList.size(), 2); // 1+1, since ACL will be set for the creator by default
+    Assert.assertEquals(2, aclList.size()); // 1+1, since ACL will be set for the creator by default
     Assert.assertTrue(aclList.contains(new ACL(Perms.ALL, new Id("sasl", "user1"))));
     Assert.assertTrue(aclList.contains(Ids.CREATOR_ALL_ACL.iterator().next()));
   }
@@ -71,7 +71,7 @@ public class TestZKUtil {
     String node = "/hbase/testCreateACL";
     ZKWatcher watcher = new ZKWatcher(conf, node, null, false);
     List<ACL> aclList = ZKUtil.createACL(watcher, node, true);
-    Assert.assertEquals(aclList.size(), 4); // 3+1, since ACL will be set for the creator by default
+    Assert.assertEquals(4, aclList.size()); // 3+1, since ACL will be set for the creator by default
     Assert.assertFalse(aclList.contains(new ACL(Perms.ALL, new Id("sasl", "@group1"))));
     Assert.assertFalse(aclList.contains(new ACL(Perms.ALL, new Id("sasl", "@group2"))));
     Assert.assertTrue(aclList.contains(new ACL(Perms.ALL, new Id("sasl", "user1"))));
@@ -87,7 +87,7 @@ public class TestZKUtil {
     String node = "/hbase/testCreateACL";
     ZKWatcher watcher = new ZKWatcher(conf, node, null, false);
     List<ACL> aclList = ZKUtil.createACL(watcher, node, true);
-    Assert.assertEquals(aclList.size(), 3); // 3, since service user the same as one of superuser
+    Assert.assertEquals(3, aclList.size()); // 3, since service user the same as one of superuser
     Assert.assertFalse(aclList.contains(new ACL(Perms.ALL, new Id("sasl", "@group1"))));
     Assert.assertTrue(aclList.contains(new ACL(Perms.ALL, new Id("auth", ""))));
     Assert.assertTrue(aclList.contains(new ACL(Perms.ALL, new Id("sasl", "user5"))));