diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java index b98078ad3e..42484e71c9 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java @@ -313,12 +313,10 @@ public class LocalHBaseCluster { */ public HMaster getActiveMaster() { for (JVMClusterUtil.MasterThread mt : masterThreads) { - if (mt.getMaster().isActiveMaster()) { - // Ensure that the current active master is not stopped. - // We don't want to return a stopping master as an active master. - if (mt.getMaster().isActiveMaster() && !mt.getMaster().isStopped()) { - return mt.getMaster(); - } + // Ensure that the current active master is not stopped. + // We don't want to return a stopping master as an active master. + if (mt.getMaster().isActiveMaster() && !mt.getMaster().isStopped()) { + return mt.getMaster(); } } return null; diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/constraint/Constraints.java hbase-server/src/main/java/org/apache/hadoop/hbase/constraint/Constraints.java index 85ef71781a..c96bf3d1a7 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/constraint/Constraints.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/constraint/Constraints.java @@ -616,8 +616,8 @@ public final class Constraints { @Override public int compare(Constraint c1, Constraint c2) { // compare the priorities of the constraints stored in their configuration - return Long.valueOf(c1.getConf().getLong(PRIORITY_KEY, DEFAULT_PRIORITY)) - .compareTo(c2.getConf().getLong(PRIORITY_KEY, DEFAULT_PRIORITY)); + return Long.compare(c1.getConf().getLong(PRIORITY_KEY, DEFAULT_PRIORITY), + c2.getConf().getLong(PRIORITY_KEY, DEFAULT_PRIORITY)); } }; diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/JarFinder.java hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/JarFinder.java index dfbe648d9a..e0421d96ba 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/JarFinder.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/JarFinder.java @@ -90,6 +90,9 @@ public class JarFinder { private static void zipDir(File dir, String relativePath, ZipOutputStream zos, boolean start) throws IOException { String[] dirList = dir.list(); + if (dirList == null) { + return; + } for (String aDirList : dirList) { File f = new File(dir, aDirList); if (!f.isHidden()) { diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/replication/VerifyReplication.java hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/replication/VerifyReplication.java index a40de4e616..e9f98fe5d1 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/replication/VerifyReplication.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/replication/VerifyReplication.java @@ -97,6 +97,8 @@ public class VerifyReplication extends Configured implements Tool { * @param context The current context. * @throws IOException When something is broken with the data. */ + @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_ALWAYS_NULL", + justification="The replicatedScanner will be assigned when connect() is called") @Override public void map(ImmutableBytesWritable row, final Result value, Context context) diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/master/DeadServer.java hbase-server/src/main/java/org/apache/hadoop/hbase/master/DeadServer.java index c33cdcc951..81accd2215 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/master/DeadServer.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/master/DeadServer.java @@ -134,11 +134,6 @@ public class DeadServer { assert numProcessing >= 0: "Number of dead servers in processing should always be non-negative"; - if (numProcessing < 0) { - LOG.error("Number of dead servers in processing = " + numProcessing - + ". Something went wrong, this should always be non-negative."); - numProcessing = 0; - } if (numProcessing == 0) { processing = false; } } diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java index 584952fc8e..7ea5fd7a64 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java @@ -696,9 +696,8 @@ public class ServerManager { if (!services.getAssignmentManager().isFailoverCleanupDone()) { LOG.info("AssignmentManager hasn't finished failover cleanup; waiting"); } - - for(ServerName tmpServerName : requeuedDeadServers.keySet()){ - processDeadServer(tmpServerName, requeuedDeadServers.get(tmpServerName)); + for (Map.Entry entry : requeuedDeadServers.entrySet()) { + processDeadServer(entry.getKey(), entry.getValue()); } requeuedDeadServers.clear(); } diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java index 2df4fbefdf..0ec1e39dee 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java @@ -774,7 +774,7 @@ public abstract class BaseLoadBalancer implements LoadBalancer { private Comparator numRegionsComparator = new Comparator() { @Override public int compare(Integer integer, Integer integer2) { - return Integer.valueOf(getNumRegions(integer)).compareTo(getNumRegions(integer2)); + return Integer.compare(getNumRegions(integer), getNumRegions(integer2)); } }; @@ -789,15 +789,7 @@ public abstract class BaseLoadBalancer implements LoadBalancer { private Comparator localityComparator = new Comparator() { @Override public int compare(Integer integer, Integer integer2) { - float locality1 = getLocality(integer); - float locality2 = getLocality(integer2); - if (locality1 < locality2) { - return -1; - } else if (locality1 > locality2) { - return 1; - } else { - return 0; - } + return Float.compare(getLocality(integer), getLocality(integer2)); } }; @@ -980,6 +972,8 @@ public abstract class BaseLoadBalancer implements LoadBalancer { protected MetricsBalancer metricsBalancer = null; protected ClusterStatus clusterStatus = null; protected ServerName masterServerName; + @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IS2_INCONSISTENT_SYNC", + justification="The services is just assigned once when master start") protected MasterServices services; protected static String[] getTablesOnMaster(Configuration conf) { diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ExplicitColumnTracker.java hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ExplicitColumnTracker.java index acf208e623..7421213d42 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ExplicitColumnTracker.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ExplicitColumnTracker.java @@ -144,15 +144,13 @@ public class ExplicitColumnTracker implements ColumnTracker { // is interested in. That means there is no more data for the column // of interest. Advance the ExplicitColumnTracker state to next // column of interest, and check again. - if (ret <= -1) { - ++this.index; - if (done()) { - // No more to match, do not include, done with this row. - return ScanQueryMatcher.MatchCode.SEEK_NEXT_ROW; // done_row - } - // This is the recursive case. - this.column = this.columns[this.index]; + ++this.index; + if (done()) { + // No more to match, do not include, done with this row. + return ScanQueryMatcher.MatchCode.SEEK_NEXT_ROW; // done_row } + // This is the recursive case. + this.column = this.columns[this.index]; } while(true); } diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java index 61d532b8d1..4621439110 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java @@ -2692,7 +2692,6 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi checkResources(); startRegionOperation(Operation.DELETE); try { - delete.getRow(); // All edits for the given row (across all column families) must happen atomically. doBatchMutate(delete); } finally { @@ -3247,9 +3246,6 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi if (nonceGroup != currentNonceGroup || nonce != currentNonce) { if (walEdit.size() > 0) { assert isInReplay; - if (!isInReplay) { - throw new IOException("Multiple nonces per batch and not in replay"); - } // txid should always increase, so having the one from the last call is ok. // we use HLogKey here instead of WALKey directly to support legacy coprocessors. walKey = new ReplayHLogKey(this.getRegionInfo().getEncodedNameAsBytes(), diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java index d2f0b04d57..54934f3505 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java @@ -791,7 +791,8 @@ public class HRegionServer extends HasThread implements * @throws IOException * @throws InterruptedException */ - @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE", + @edu.umd.cs.findbugs.annotations.SuppressWarnings( + value={"RV_RETURN_VALUE_IGNORED_BAD_PRACTICE", "RV_RETURN_VALUE_IGNORED"}, justification="cluster Id znode read would give us correct response") private void initializeZooKeeper() throws IOException, InterruptedException { // Create the master address tracker, register with zk, and start it. Then diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java index 22852925a0..d156a361ef 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java @@ -452,7 +452,7 @@ public class ReplicationSource extends Thread @Override public int compare(Path o1, Path o2) { - return Long.valueOf(getTS(o1)).compareTo(getTS(o2)); + return Long.compare(getTS(o1), getTS(o2)); } /** diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALSplitter.java hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALSplitter.java index 2077e36fb9..eed9a8b64b 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALSplitter.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALSplitter.java @@ -1769,12 +1769,13 @@ public class WALSplitter { int maxSize = 0; List> maxQueue = null; synchronized (this.serverToBufferQueueMap) { - for (String key : this.serverToBufferQueueMap.keySet()) { - List> curQueue = this.serverToBufferQueueMap.get(key); + for (Map.Entry>> entry: + serverToBufferQueueMap.entrySet()) { + List> curQueue = entry.getValue(); if (curQueue.size() > maxSize) { maxSize = curQueue.size(); maxQueue = curQueue; - maxLocKey = key; + maxLocKey = entry.getKey(); } } if (maxSize < minBatchSize @@ -2065,8 +2066,10 @@ public class WALSplitter { int curSize = 0; List> curQueue = null; synchronized (this.serverToBufferQueueMap) { - for (String locationKey : this.serverToBufferQueueMap.keySet()) { - curQueue = this.serverToBufferQueueMap.get(locationKey); + for (Map.Entry>> entry : + serverToBufferQueueMap.entrySet()) { + String locationKey = entry.getKey(); + curQueue = entry.getValue(); if (!curQueue.isEmpty()) { curSize = curQueue.size(); curLoc = locationKey; @@ -2144,8 +2147,9 @@ public class WALSplitter { } } finally { synchronized (writers) { - for (String locationKey : writers.keySet()) { - RegionServerWriter tmpW = writers.get(locationKey); + for (Map.Entry entry : writers.entrySet()) { + String locationKey = entry.getKey(); + RegionServerWriter tmpW = entry.getValue(); try { tmpW.close(); } catch (IOException ioe) { @@ -2157,8 +2161,10 @@ public class WALSplitter { // close connections synchronized (this.tableNameToHConnectionMap) { - for (TableName tableName : this.tableNameToHConnectionMap.keySet()) { - HConnection hconn = this.tableNameToHConnectionMap.get(tableName); + for (Map.Entry entry : + tableNameToHConnectionMap.entrySet()) { + TableName tableName = entry.getKey(); + HConnection hconn = entry.getValue(); try { hconn.clearRegionCache(); hconn.close();