You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2019/06/01 00:17:30 UTC

[hbase] branch branch-1.3 updated: HBASE-22508 Address findbugs/spotbugs complaints (branch-1.3)

This is an automated email from the ASF dual-hosted git repository.

apurtell pushed a commit to branch branch-1.3
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-1.3 by this push:
     new be463e7  HBASE-22508 Address findbugs/spotbugs complaints (branch-1.3)
be463e7 is described below

commit be463e77f7edec577dcffcfa4ede94a51485a163
Author: Andrew Purtell <ap...@apache.org>
AuthorDate: Thu May 30 16:40:07 2019 -0700

    HBASE-22508 Address findbugs/spotbugs complaints (branch-1.3)
    
    Closes #275
    
    Signed-off-by: Sean Busbey <bu...@apache.org>
---
 .../hadoop/metrics2/lib/MetricsExecutorImpl.java    |  2 +-
 .../apache/hadoop/hbase/regionserver/HRegion.java   | 21 ++++++++++++++++-----
 .../apache/hadoop/hbase/regionserver/HStore.java    |  6 +++++-
 .../java/org/apache/hadoop/hbase/tool/Canary.java   |  4 +++-
 4 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MetricsExecutorImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MetricsExecutorImpl.java
index c381609..0a83a5e 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MetricsExecutorImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MetricsExecutorImpl.java
@@ -48,7 +48,7 @@ public class MetricsExecutorImpl implements MetricsExecutor {
 
   private enum ExecutorSingleton {
     INSTANCE;
-    private final ScheduledExecutorService scheduler = new ScheduledThreadPoolExecutor(1,
+    private transient final ScheduledExecutorService scheduler = new ScheduledThreadPoolExecutor(1,
         new ThreadPoolExecutorThreadFactory("HBase-Metrics2-"));
   }
 
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
index d667786..f7abe2a 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
@@ -7812,11 +7812,15 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
         for (Map.Entry<Store, List<Cell>> entry : removedCellsForMemStore.entrySet()) {
           Store currStore = entry.getKey();
           for (Cell cell: entry.getValue()) {
-            CellUtil.setSequenceId(cell, walKey.getWriteEntry().getWriteNumber());
+            if (we != null) {
+              CellUtil.setSequenceId(cell, we.getWriteNumber());
+            }
             currStore.add(cell);
           }
         }
-        if (we != null) mvcc.complete(we);
+        if (we != null) {
+          mvcc.complete(we);
+        }
       } else if (we != null) {
         mvcc.completeAndWait(we);
       }
@@ -8042,6 +8046,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
         rowLock.release();
       }
       // if the wal sync was unsuccessful, remove keys from memstore
+      WriteEntry we = walKey != null ? walKey.getWriteEntry() : null;
       if (doRollBackMemstore) {
         for (Map.Entry<Store, List<Cell>> entry : forMemStore.entrySet()) {
           rollbackMemstore(entry.getKey(), entry.getValue());
@@ -8049,13 +8054,19 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
         for (Map.Entry<Store, List<Cell>> entry : removedCellsForMemStore.entrySet()) {
           Store currStore = entry.getKey();
           for (Cell cell : entry.getValue()) {
-            CellUtil.setSequenceId(cell, walKey.getWriteEntry().getWriteNumber());
+            if (we != null) {
+              CellUtil.setSequenceId(cell, we.getWriteNumber());
+            }
             currStore.add(cell);
           }
         }
-        if (walKey != null) mvcc.complete(walKey.getWriteEntry());
+        if (we != null) {
+          mvcc.complete(we);
+        }
       } else {
-        if (walKey != null) mvcc.completeAndWait(walKey.getWriteEntry());
+        if (we != null) {
+          mvcc.completeAndWait(we);
+        }
       }
     }
 
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
index 08dc3f8..764099f 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
@@ -2806,10 +2806,14 @@ public class HStore implements Store {
             // Just close and return
             filesToRemove.add(file);
           } else {
-            LOG.info("Can't archive compacted file " + file.getPath()
+            if (r != null) {
+              LOG.info("Can't archive compacted file " + file.getPath()
                 + " because of either isCompactedAway=" + r.isCompactedAway()
                 + " or file has reference, isReferencedInReads=" + r.isReferencedInReads()
                 + ", refCount=" + r.getRefCount() + ", skipping for now.");
+            } else {
+              LOG.info("Can't archive compacted file " + file.getPath() + ", skipping for now.");
+            }
           }
         } catch (Exception e) {
           LOG.error(
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java
index c0655d8..7c17db9 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java
@@ -35,6 +35,7 @@ import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Random;
 import java.util.Set;
 import java.util.TreeSet;
@@ -1089,7 +1090,8 @@ public final class Canary implements Tool {
             }
           }
           Map<String, AtomicLong> actualReadTableLatency = regionSink.getReadLatencyMap();
-          for (String tableName : this.configuredReadTableTimeouts.keySet()) {
+          for (Entry<String, Long> entry : this.configuredReadTableTimeouts.entrySet()) {
+            String tableName = entry.getKey();
             if (actualReadTableLatency.containsKey(tableName)) {
               Long actual = actualReadTableLatency.get(tableName).longValue();
               Long configured = this.configuredReadTableTimeouts.get(tableName);