From ede5d14eb61515970df4b53afc7166725d8c14cc Mon Sep 17 00:00:00 2001 From: Peter Somogyi Date: Tue, 23 Jan 2018 13:12:18 +0100 Subject: [PATCH] HBASE-19845 Fix findbugs and error-prone warnings in hbase-rsgroup (branch-2) --- .../apache/hadoop/hbase/rsgroup/RSGroupAdmin.java | 3 +- .../hadoop/hbase/rsgroup/RSGroupAdminClient.java | 5 ++- .../hadoop/hbase/rsgroup/RSGroupAdminServer.java | 40 +++++++++++--------- .../hbase/rsgroup/RSGroupBasedLoadBalancer.java | 23 ++++++----- .../hadoop/hbase/rsgroup/RSGroupInfoManager.java | 3 +- .../hbase/rsgroup/RSGroupInfoManagerImpl.java | 5 ++- .../hadoop/hbase/rsgroup/RSGroupProtobufUtil.java | 9 +++-- .../hadoop/hbase/rsgroup/RSGroupableBalancer.java | 2 +- .../org/apache/hadoop/hbase/rsgroup/Utility.java | 15 +++++--- .../balancer/TestRSGroupBasedLoadBalancer.java | 44 +--------------------- .../apache/hadoop/hbase/rsgroup/TestRSGroups.java | 5 ++- .../hadoop/hbase/rsgroup/TestRSGroupsBase.java | 27 ++++++++----- .../hadoop/hbase/rsgroup/TestRSGroupsWithACL.java | 2 + .../hbase/rsgroup/VerifyingRSGroupAdminClient.java | 25 ++++++------ 14 files changed, 100 insertions(+), 108 deletions(-) diff --git a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.java b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.java index 453ef54f24..372e0f4851 100644 --- a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.java +++ b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.java @@ -22,8 +22,8 @@ import java.util.List; import java.util.Set; import org.apache.hadoop.hbase.TableName; -import org.apache.yetus.audience.InterfaceAudience; import org.apache.hadoop.hbase.net.Address; +import org.apache.yetus.audience.InterfaceAudience; /** * Group user API interface used between client and server. @@ -84,7 +84,6 @@ public interface RSGroupAdmin { * @param servers set of servers to move * @param tables set of tables to move * @param targetGroup the target group name - * @throws IOException */ void moveServersAndTables(Set
servers, Set tables, String targetGroup) throws IOException; diff --git a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.java b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.java index 96379bae80..380f323bdf 100644 --- a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.java +++ b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.java @@ -17,13 +17,14 @@ */ package org.apache.hadoop.hbase.rsgroup; +import com.google.protobuf.ServiceException; + import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Set; import org.apache.hadoop.hbase.TableName; -import org.apache.yetus.audience.InterfaceAudience; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.net.Address; import org.apache.hadoop.hbase.protobuf.ProtobufUtil; @@ -44,9 +45,9 @@ import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdmi import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveRSGroupRequest; import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveServersRequest; import org.apache.hadoop.hbase.protobuf.generated.RSGroupProtos; +import org.apache.yetus.audience.InterfaceAudience; import org.apache.hbase.thirdparty.com.google.common.collect.Sets; -import com.google.protobuf.ServiceException; /** * Client used for managing region server group information. diff --git a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.java b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.java index 0a743a58b2..c14a3af5ac 100644 --- a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.java +++ b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.java @@ -43,12 +43,13 @@ import org.apache.hadoop.hbase.master.ServerManager; import org.apache.hadoop.hbase.master.assignment.AssignmentManager; import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode; import org.apache.hadoop.hbase.net.Address; -import org.apache.hbase.thirdparty.com.google.common.collect.Lists; -import org.apache.hbase.thirdparty.com.google.common.collect.Maps; import org.apache.yetus.audience.InterfaceAudience; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.apache.hbase.thirdparty.com.google.common.collect.Lists; +import org.apache.hbase.thirdparty.com.google.common.collect.Maps; + /** * Service to support Region Server Grouping (HBase-6721). */ @@ -116,7 +117,9 @@ public class RSGroupAdminServer implements RSGroupAdmin { LinkedList regions = new LinkedList<>(); for (Map.Entry el : master.getAssignmentManager().getRegionStates().getRegionAssignments().entrySet()) { - if (el.getValue() == null) continue; + if (el.getValue() == null) { + continue; + } if (el.getValue().getAddress().equals(server)) { addRegion(regions, el.getKey()); } @@ -133,8 +136,11 @@ public class RSGroupAdminServer implements RSGroupAdmin { // If meta, move it last otherwise other unassigns fail because meta is not // online for them to update state in. This is dodgy. Needs to be made more // robust. See TODO below. - if (hri.isMetaRegion()) regions.addLast(hri); - else regions.addFirst(hri); + if (hri.isMetaRegion()) { + regions.addLast(hri); + } else { + regions.addFirst(hri); + } } /** @@ -143,7 +149,6 @@ public class RSGroupAdminServer implements RSGroupAdmin { * @param servers servers to move * @param tables tables to move * @param targetGroupName target group name - * @throws IOException */ private void checkServersAndTables(Set
servers, Set tables, String targetGroupName) throws IOException { @@ -157,7 +162,7 @@ public class RSGroupAdminServer implements RSGroupAdmin { } RSGroupInfo srcGrp = new RSGroupInfo(tmpSrcGrp); if (srcGrp.getName().equals(targetGroupName)) { - throw new ConstraintException( "Target RSGroup " + targetGroupName + + throw new ConstraintException("Target RSGroup " + targetGroupName + " is same as source " + srcGrp.getName() + " RSGroup."); } // Only move online servers @@ -182,7 +187,7 @@ public class RSGroupAdminServer implements RSGroupAdmin { } if (srcGrp.getServers().size() <= servers.size() - && srcGrp.getTables().size() > tables.size() ) { + && srcGrp.getTables().size() > tables.size()) { throw new ConstraintException("Cannot leave a RSGroup " + srcGrp.getName() + " that contains tables without servers to host them."); } @@ -194,7 +199,6 @@ public class RSGroupAdminServer implements RSGroupAdmin { * @param servers the servers that will move to new group * @param tables these tables will be kept on the servers, others will be moved * @param targetGroupName the target group name - * @throws IOException */ private void moveRegionsFromServers(Set
servers, Set tables, String targetGroupName) throws IOException { @@ -244,18 +248,18 @@ public class RSGroupAdminServer implements RSGroupAdmin { /** * Moves every region of tables which should be kept on the servers, * but currently they are located on other servers. - * @param servers the regions of these servers will be kept on the servers, - * others will be moved + * @param servers the regions of these servers will be kept on the servers, others will be moved * @param tables the tables that will move to new group * @param targetGroupName the target group name - * @throws IOException */ private void moveRegionsToServers(Set
servers, Set tables, String targetGroupName) throws IOException { for (TableName table: tables) { LOG.info("Moving region(s) from " + table + " for table move to " + targetGroupName); - for (RegionInfo region : master.getAssignmentManager().getRegionStates().getRegionsOfTable(table)) { - ServerName sn = master.getAssignmentManager().getRegionStates().getRegionServerOfRegion(region); + for (RegionInfo region : master.getAssignmentManager().getRegionStates() + .getRegionsOfTable(table)) { + ServerName sn = + master.getAssignmentManager().getRegionStates().getRegionServerOfRegion(region); if (!servers.contains(sn.getAddress())) { master.getAssignmentManager().move(region); } @@ -294,7 +298,7 @@ public class RSGroupAdminServer implements RSGroupAdmin { + " does not exist."); } if (srcGrp.getName().equals(targetGroupName)) { - throw new ConstraintException( "Target RSGroup " + targetGroupName + + throw new ConstraintException("Target RSGroup " + targetGroupName + " is same as source " + srcGrp + " RSGroup."); } // Only move online servers (when moving from 'default') or servers from other @@ -482,7 +486,9 @@ public class RSGroupAdminServer implements RSGroupAdmin { synchronized (balancer) { // If balance not true, don't run balancer. - if (!((HMaster) master).isBalancerOn()) return false; + if (!((HMaster) master).isBalancerOn()) { + return false; + } if (master.getMasterCoprocessorHost() != null) { master.getMasterCoprocessorHost().preBalanceRSGroup(groupName); } @@ -547,7 +553,7 @@ public class RSGroupAdminServer implements RSGroupAdmin { @Override public void moveServersAndTables(Set
servers, Set tables, String targetGroup) throws IOException { - if (servers == null || servers.isEmpty() ) { + if (servers == null || servers.isEmpty()) { throw new ConstraintException("The list of servers to move cannot be null or empty."); } if (tables == null || tables.isEmpty()) { diff --git a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java index 619de9e8d9..f3c0b85230 100644 --- a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java +++ b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java @@ -29,6 +29,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeMap; + import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.ClusterMetrics; import org.apache.hadoop.hbase.HBaseIOException; @@ -42,16 +43,17 @@ import org.apache.hadoop.hbase.master.MasterServices; import org.apache.hadoop.hbase.master.RegionPlan; import org.apache.hadoop.hbase.master.balancer.StochasticLoadBalancer; import org.apache.hadoop.hbase.net.Address; +import org.apache.hadoop.util.ReflectionUtils; +import org.apache.yetus.audience.InterfaceAudience; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting; import org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap; import org.apache.hbase.thirdparty.com.google.common.collect.LinkedListMultimap; import org.apache.hbase.thirdparty.com.google.common.collect.ListMultimap; import org.apache.hbase.thirdparty.com.google.common.collect.Lists; import org.apache.hbase.thirdparty.com.google.common.collect.Maps; -import org.apache.hadoop.util.ReflectionUtils; -import org.apache.yetus.audience.InterfaceAudience; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * GroupBasedLoadBalancer, used when Region Server Grouping is configured (HBase-6721) @@ -209,7 +211,7 @@ public class RSGroupBasedLoadBalancer implements RSGroupableBalancer { } for (RegionInfo region : misplacedRegions) { - String groupName = rsGroupInfoManager.getRSGroupOfTable(region.getTable());; + String groupName = rsGroupInfoManager.getRSGroupOfTable(region.getTable()); RSGroupInfo info = rsGroupInfoManager.getRSGroup(groupName); List candidateList = filterOfflineServers(info, servers); ServerName server = this.internalBalancer.randomAssignment(region, @@ -274,7 +276,7 @@ public class RSGroupBasedLoadBalancer implements RSGroupableBalancer { return filterServers(RSGroupInfo.getServers(), onlineServers); } else { LOG.warn("RSGroup Information found to be null. Some regions might be unassigned."); - return Collections.EMPTY_LIST; + return Collections.emptyList(); } } @@ -329,9 +331,8 @@ public class RSGroupBasedLoadBalancer implements RSGroupableBalancer { return misplacedRegions; } - private ServerName findServerForRegion( - Map> existingAssignments, RegionInfo region) - { + private ServerName findServerForRegion(Map> existingAssignments, + RegionInfo region) { for (Map.Entry> entry : existingAssignments.entrySet()) { if (entry.getValue().contains(region)) { return entry.getKey(); @@ -398,7 +399,9 @@ public class RSGroupBasedLoadBalancer implements RSGroupableBalancer { } public boolean isOnline() { - if (this.rsGroupInfoManager == null) return false; + if (this.rsGroupInfoManager == null) { + return false; + } return this.rsGroupInfoManager.isOnline(); } diff --git a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.java b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.java index 5eee236f29..77aefbd903 100644 --- a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.java +++ b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.java @@ -18,16 +18,15 @@ package org.apache.hadoop.hbase.rsgroup; - import java.io.IOException; import java.util.List; import java.util.Set; import org.apache.hadoop.hbase.NamespaceDescriptor; import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.net.Address; import org.apache.hadoop.hbase.util.Bytes; import org.apache.yetus.audience.InterfaceAudience; -import org.apache.hadoop.hbase.net.Address; /** * Interface used to manage RSGroupInfo storage. An implementation diff --git a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java index bf620e8d96..1a561e321c 100644 --- a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java +++ b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java @@ -18,6 +18,8 @@ package org.apache.hadoop.hbase.rsgroup; +import com.google.protobuf.ServiceException; + import java.io.ByteArrayInputStream; import java.io.IOException; import java.util.ArrayList; @@ -86,7 +88,6 @@ import org.apache.hbase.thirdparty.com.google.common.collect.Sets; import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter; import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos; -import com.google.protobuf.ServiceException; /** * This is an implementation of {@link RSGroupInfoManager} which makes @@ -113,7 +114,7 @@ import com.google.protobuf.ServiceException; * no other has access concurrently. Reads must be able to continue concurrently. */ @InterfaceAudience.Private -class RSGroupInfoManagerImpl implements RSGroupInfoManager { +final class RSGroupInfoManagerImpl implements RSGroupInfoManager { private static final Logger LOG = LoggerFactory.getLogger(RSGroupInfoManagerImpl.class); /** Table descriptor for hbase:rsgroup catalog table */ diff --git a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupProtobufUtil.java b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupProtobufUtil.java index f306c5db43..cd66c7e3b9 100644 --- a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupProtobufUtil.java +++ b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupProtobufUtil.java @@ -21,16 +21,19 @@ package org.apache.hadoop.hbase.rsgroup; import java.util.ArrayList; import java.util.List; -import org.apache.yetus.audience.InterfaceAudience; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.net.Address; -import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos; import org.apache.hadoop.hbase.protobuf.ProtobufUtil; +import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos; import org.apache.hadoop.hbase.protobuf.generated.RSGroupProtos; import org.apache.hadoop.hbase.protobuf.generated.TableProtos; +import org.apache.yetus.audience.InterfaceAudience; @InterfaceAudience.Private -class RSGroupProtobufUtil { +final class RSGroupProtobufUtil { + + private RSGroupProtobufUtil() { } + static RSGroupInfo toGroupInfo(RSGroupProtos.RSGroupInfo proto) { RSGroupInfo RSGroupInfo = new RSGroupInfo(proto.getName()); for(HBaseProtos.ServerName el: proto.getServersList()) { diff --git a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupableBalancer.java b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupableBalancer.java index 90f45ac29a..d091b3cfbd 100644 --- a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupableBalancer.java +++ b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupableBalancer.java @@ -18,8 +18,8 @@ package org.apache.hadoop.hbase.rsgroup; -import org.apache.yetus.audience.InterfaceAudience; import org.apache.hadoop.hbase.master.LoadBalancer; +import org.apache.yetus.audience.InterfaceAudience; /** * Marker Interface. RSGroups feature will check for a LoadBalancer diff --git a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/Utility.java b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/Utility.java index f0c699828a..2731363923 100644 --- a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/Utility.java +++ b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/Utility.java @@ -23,22 +23,27 @@ import java.util.HashSet; import java.util.Set; import org.apache.hadoop.hbase.ServerName; -import org.apache.yetus.audience.InterfaceAudience; import org.apache.hadoop.hbase.master.MasterServices; import org.apache.hadoop.hbase.net.Address; +import org.apache.yetus.audience.InterfaceAudience; /** * Utility for this RSGroup package in hbase-rsgroup. */ @InterfaceAudience.Private -class Utility { +final class Utility { + + private Utility() {} + /** - * @param master + * @param master the master service * @return Set of online Servers named for their hostname and port (not ServerName). */ static Set
getOnlineServers(final MasterServices master) { - Set
onlineServers = new HashSet
(); - if (master == null) return onlineServers; + Set
onlineServers = new HashSet<>(); + if (master == null) { + return onlineServers; + } for(ServerName server: master.getServerManager().getOnlineServers().keySet()) { onlineServers.add(server.getAddress()); } diff --git a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.java b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.java index 68845d73e8..6964d6a7aa 100644 --- a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.java +++ b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.java @@ -74,8 +74,7 @@ public class TestRSGroupBasedLoadBalancer { private static RSGroupBasedLoadBalancer loadBalancer; private static SecureRandom rand; - static String[] groups = new String[] { RSGroupInfo.DEFAULT_GROUP, "dg2", "dg3", - "dg4" }; + static String[] groups = new String[] { RSGroupInfo.DEFAULT_GROUP, "dg2", "dg3", "dg4" }; static TableName table0 = TableName.valueOf("dt0"); static TableName[] tables = new TableName[] { TableName.valueOf("dt1"), @@ -111,8 +110,6 @@ public class TestRSGroupBasedLoadBalancer { * * Invariant is that all servers of the group should be hosting either floor(average) or * ceiling(average) - * - * @throws Exception */ @Test public void testBalanceCluster() throws Exception { @@ -162,40 +159,12 @@ public class TestRSGroupBasedLoadBalancer { } } - /** - * All regions have an assignment. - * - * @param regions - * @param servers - * @param assignments - * @throws java.io.IOException - * @throws java.io.FileNotFoundException - */ - private void assertImmediateAssignment(List regions, - List servers, - Map assignments) - throws IOException { - for (RegionInfo region : regions) { - assertTrue(assignments.containsKey(region)); - ServerName server = assignments.get(region); - TableName tableName = region.getTable(); - - String groupName = getMockedGroupInfoManager().getRSGroupOfTable(tableName); - assertTrue(StringUtils.isNotEmpty(groupName)); - RSGroupInfo gInfo = getMockedGroupInfoManager().getRSGroup(groupName); - assertTrue("Region is not correctly assigned to group servers.", - gInfo.containsServer(server.getAddress())); - } - } - /** * Tests the bulk assignment used during cluster startup. * * Round-robin. Should yield a balanced cluster so same invariant as the * load balancer holds, all servers holding either floor(avg) or * ceiling(avg). - * - * @throws Exception */ @Test public void testBulkAssignment() throws Exception { @@ -243,8 +212,6 @@ public class TestRSGroupBasedLoadBalancer { /** * Test the cluster startup bulk assignment which attempts to retain * assignment info. - * - * @throws Exception */ @Test public void testRetainAssignment() throws Exception { @@ -265,7 +232,6 @@ public class TestRSGroupBasedLoadBalancer { /** * Test BOGUS_SERVER_NAME among groups do not overwrite each other - * @throws Exception */ @Test public void testRoundRobinAssignment() throws Exception { @@ -303,11 +269,6 @@ public class TestRSGroupBasedLoadBalancer { *
  • If a region had an existing assignment to a server with the same * address a a currently online server, it will be assigned to it * - * - * @param existing - * @param assignment - * @throws java.io.IOException - * @throws java.io.FileNotFoundException */ private void assertRetainedAssignment( Map existing, List servers, @@ -320,8 +281,7 @@ public class TestRSGroupBasedLoadBalancer { assertTrue( "Region assigned to server that was not listed as online", onlineServerSet.contains(a.getKey())); - for (RegionInfo r : a.getValue()) - assignedRegions.add(r); + assignedRegions.addAll(a.getValue()); } assertEquals(existing.size(), assignedRegions.size()); diff --git a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroups.java b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroups.java index cadb0906f2..6a333e41a1 100644 --- a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroups.java +++ b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroups.java @@ -40,8 +40,6 @@ import org.apache.hadoop.hbase.master.HMaster; import org.apache.hadoop.hbase.master.ServerManager; import org.apache.hadoop.hbase.master.snapshot.SnapshotManager; import org.apache.hadoop.hbase.net.Address; -import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil; -import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.util.Bytes; import org.junit.After; @@ -53,7 +51,10 @@ import org.junit.Test; import org.junit.experimental.categories.Category; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + import org.apache.hbase.thirdparty.com.google.common.collect.Sets; +import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil; +import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos; @Category({MediumTests.class}) public class TestRSGroups extends TestRSGroupsBase { diff --git a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java index 1d28233d06..a888da4119 100644 --- a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java +++ b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java @@ -345,8 +345,9 @@ public abstract class TestRSGroupsBase { @Override public boolean evaluate() throws Exception { List regions = getTableRegionMap().get(tableName); - if (regions == null) + if (regions == null) { return false; + } return getTableRegionMap().get(tableName).size() >= 5; } }); @@ -478,8 +479,9 @@ public abstract class TestRSGroupsBase { @Override public boolean evaluate() throws Exception { List regions = getTableRegionMap().get(tableName); - if (regions == null) + if (regions == null) { return false; + } return getTableRegionMap().get(tableName).size() >= 6; } }); @@ -518,7 +520,8 @@ public abstract class TestRSGroupsBase { }); // Lets move this region to the new group. - TEST_UTIL.getAdmin().move(Bytes.toBytes(RegionInfo.encodeRegionName(Bytes.toBytes(targetRegion))), + TEST_UTIL.getAdmin().move( + Bytes.toBytes(RegionInfo.encodeRegionName(Bytes.toBytes(targetRegion))), Bytes.toBytes(targetServer.getServerName())); TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate() { @Override @@ -678,11 +681,13 @@ public abstract class TestRSGroupsBase { @Override public boolean evaluate() throws Exception { List regionsA = getTableRegionMap().get(tableNameA); - if (regionsA == null) + if (regionsA == null) { return false; + } List regionsB = getTableRegionMap().get(tableNameB); - if (regionsB == null) + if (regionsB == null) { return false; + } return getTableRegionMap().get(tableNameA).size() >= 1 && getTableRegionMap().get(tableNameB).size() >= 1; @@ -706,7 +711,8 @@ public abstract class TestRSGroupsBase { rsGroupAdmin.getRSGroupInfoOfTable(tableNameB).getName()); //verify tables' not exist in old group - Set DefaultTables = rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP).getTables(); + Set DefaultTables = + rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP).getTables(); assertFalse(DefaultTables.contains(tableNameA)); assertFalse(DefaultTables.contains(tableNameB)); @@ -760,8 +766,9 @@ public abstract class TestRSGroupsBase { @Override public boolean evaluate() throws Exception { List regions = getTableRegionMap().get(tableName); - if (regions == null) + if (regions == null) { return false; + } return getTableRegionMap().get(tableName).size() >= 5; } }); @@ -850,7 +857,8 @@ public abstract class TestRSGroupsBase { rsGroupAdmin.getRSGroupInfoOfTable(tableName).getName()); //verify servers' not exist in old group - Set
    defaultServers = rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP).getServers(); + Set
    defaultServers = + rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP).getServers(); assertFalse(defaultServers.contains(targetServer.getAddress())); //verify servers' exist in new group @@ -858,7 +866,8 @@ public abstract class TestRSGroupsBase { assertTrue(newGroupServers.contains(targetServer.getAddress())); //verify tables' not exist in old group - Set defaultTables = rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP).getTables(); + Set defaultTables = + rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP).getTables(); assertFalse(defaultTables.contains(tableName)); //verify tables' exist in new group diff --git a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.java b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.java index 4a3c12ce50..196fc70a90 100644 --- a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.java +++ b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.java @@ -21,6 +21,7 @@ package org.apache.hadoop.hbase.rsgroup; import static org.apache.hadoop.hbase.AuthUtil.toGroupEntry; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseTestingUtility; @@ -171,6 +172,7 @@ public class TestRSGroupsWithACL extends SecureTestUtil{ TEST_TABLE.toString()).size()); } catch (Throwable e) { LOG.error("error during call of AccessControlClient.getUserPermissions. ", e); + fail("error during call of AccessControlClient.getUserPermissions."); } } diff --git a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.java b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.java index f42d1b53c2..a8c1fa9545 100644 --- a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.java +++ b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.java @@ -17,12 +17,14 @@ */ package org.apache.hadoop.hbase.rsgroup; -import org.apache.hbase.thirdparty.com.google.common.collect.Maps; -import org.apache.hbase.thirdparty.com.google.common.collect.Sets; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Set; + import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.TableName; -import org.apache.hadoop.hbase.zookeeper.ZKWatcher; -import org.apache.yetus.audience.InterfaceAudience; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.Scan; @@ -32,15 +34,14 @@ import org.apache.hadoop.hbase.net.Address; import org.apache.hadoop.hbase.protobuf.ProtobufUtil; import org.apache.hadoop.hbase.protobuf.generated.RSGroupProtos; import org.apache.hadoop.hbase.zookeeper.ZKUtil; +import org.apache.hadoop.hbase.zookeeper.ZKWatcher; import org.apache.hadoop.hbase.zookeeper.ZNodePaths; +import org.apache.yetus.audience.InterfaceAudience; import org.apache.zookeeper.KeeperException; import org.junit.Assert; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.util.List; -import java.util.Map; -import java.util.Set; +import org.apache.hbase.thirdparty.com.google.common.collect.Maps; +import org.apache.hbase.thirdparty.com.google.common.collect.Sets; @InterfaceAudience.Private public class VerifyingRSGroupAdminClient implements RSGroupAdmin { @@ -51,7 +52,8 @@ public class VerifyingRSGroupAdminClient implements RSGroupAdmin { public VerifyingRSGroupAdminClient(RSGroupAdmin RSGroupAdmin, Configuration conf) throws IOException { wrapped = RSGroupAdmin; - table = ConnectionFactory.createConnection(conf).getTable(RSGroupInfoManager.RSGROUP_TABLE_NAME); + table = + ConnectionFactory.createConnection(conf).getTable(RSGroupInfoManager.RSGROUP_TABLE_NAME); zkw = new ZKWatcher(conf, this.getClass().getSimpleName(), null); } @@ -105,7 +107,8 @@ public class VerifyingRSGroupAdminClient implements RSGroupAdmin { } @Override - public void moveServersAndTables(Set
    servers, Set tables, String targetGroup) throws IOException { + public void moveServersAndTables(Set
    servers, Set tables, String targetGroup) + throws IOException { wrapped.moveServersAndTables(servers, tables, targetGroup); verify(); } -- 2.15.1