From 89412be432294ae417480b68171d565637527d61 Mon Sep 17 00:00:00 2001 From: Josh Elser Date: Thu, 13 Dec 2018 17:31:48 -0500 Subject: [PATCH] HBASE-21599 Fix a findbugs issue and some incorrect javadoc links --- .../ReplicationSourceManager.java | 5 +- .../hadoop/hbase/wal/DisabledWALProvider.java | 52 ++++++++++--------- 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java index b948d7e2df..dd31a01e0a 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java @@ -94,7 +94,8 @@ import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFacto * operations. *
  • Need synchronized on {@link #walsById}. There are four methods which modify it, * {@link #addPeer(String)}, {@link #removePeer(String)}, - * {@link #cleanOldLogs(String, boolean, ReplicationSourceInterface)} and {@link #preLogRoll(Path)}. + * {@link #cleanOldLogs(String, boolean, ReplicationSourceInterface)} and + * {@link #preLogRoll(WALIdentity)}. * {@link #walsById} is a ConcurrentHashMap and there is a Lock for peer id in * {@link PeerProcedureHandlerImpl}. So there is no race between {@link #addPeer(String)} and * {@link #removePeer(String)}. {@link #cleanOldLogs(String, boolean, ReplicationSourceInterface)} @@ -102,7 +103,7 @@ import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFacto * {@link #removePeer(String)} will terminate the {@link ReplicationSourceInterface} firstly, then * remove the wals from {@link #walsById}. So no race with {@link #removePeer(String)}. The only * case need synchronized is {@link #cleanOldLogs(String, boolean, ReplicationSourceInterface)} and - * {@link #preLogRoll(Path)}.
  • + * {@link #preLogRoll(WALIdentity)}. *
  • No need synchronized on {@link #walsByIdRecoveredQueues}. There are three methods which * modify it, {@link #removePeer(String)} , * {@link #cleanOldLogs(String, boolean, ReplicationSourceInterface)} and diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/DisabledWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/DisabledWALProvider.java index 8dee0121cd..8822f29c36 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/DisabledWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/DisabledWALProvider.java @@ -27,7 +27,6 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.atomic.AtomicBoolean; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.PrivateCellUtil; @@ -35,7 +34,6 @@ import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry; import org.apache.hadoop.hbase.regionserver.wal.WALActionsListener; import org.apache.hadoop.hbase.regionserver.wal.WALCoprocessorHost; -import org.apache.hadoop.hbase.util.FSUtils; import org.apache.yetus.audience.InterfaceAudience; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -53,6 +51,32 @@ class DisabledWALProvider implements WALProvider { private static final Logger LOG = LoggerFactory.getLogger(DisabledWALProvider.class); + private static final WALIdentity DISABLED_WAL_IDENTITY = new WALIdentity() { + @Override + public int compareTo(WALIdentity o) { + if (equals(o)) { + return 0; + } + return 1; + } + + @Override + public String getName() { + return "disabled-wal-id"; + } + + @Override + public boolean equals(Object o) { + return this == o; + } + + @Override + public int hashCode() { + return 0; + } + }; + + WAL disabled; @Override @@ -63,29 +87,7 @@ class DisabledWALProvider implements WALProvider { if (null == providerId) { providerId = "defaultDisabled"; } - final Path path = new Path(FSUtils.getWALRootDir(conf), providerId); - disabled = new DisabledWAL(new WALIdentity() { - - @Override - public int compareTo(WALIdentity o) { - return 0; - } - - @Override - public String getName() { - return path.getName(); - } - - @Override - public boolean equals(Object obj) { - return true; - } - - @Override - public int hashCode() { - return 0; - } - }, conf, null); + disabled = new DisabledWAL(DISABLED_WAL_IDENTITY, conf, null); } @Override -- 2.18.0