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 e79d51843d..8ca282a681 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java @@ -334,12 +334,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 75dfe9e81b..4fb42467f5 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 8313604a1b..a4207052ce 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 3fa14dafb8..15c8352c6d 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 @@ -759,7 +759,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)); } }; @@ -774,15 +774,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)); } }; @@ -937,6 +929,8 @@ public abstract class BaseLoadBalancer implements LoadBalancer { protected final MetricsBalancer metricsBalancer = new MetricsBalancer(); 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 2914b05fd9..1877d16a20 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 d0d457f1fd..6efb54db01 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 @@ -2597,7 +2597,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 { @@ -3121,9 +3120,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/replication/regionserver/ReplicationSource.java hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java index a59c3c83b9..4175ad2f50 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 @@ -422,7 +422,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 05d00de513..d8243d53c2 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 @@ -1729,12 +1729,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 @@ -2025,8 +2026,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; @@ -2104,8 +2107,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) { @@ -2117,8 +2121,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();