Repository: hbase
Updated Branches:
  refs/heads/HBASE-14070.HLC 4c56a3c28 -> bc48d841b


HBASE-18509 (ADDENDUM) Fix NPEs when mocking RS clocks in tests

Change-Id: I3a302fb2a89ab950bea89a0e9e6bdba30cff5358
Signed-off-by: Apekshit Sharma <a...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/bc48d841
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/bc48d841
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/bc48d841

Branch: refs/heads/HBASE-14070.HLC
Commit: bc48d841bce1dbcc31016ff55837b9f1b242e3d6
Parents: 4c56a3c
Author: Amit Patel <iamnota...@gmail.com>
Authored: Wed Aug 23 13:00:06 2017 -0700
Committer: Apekshit Sharma <a...@apache.org>
Committed: Wed Aug 23 15:07:07 2017 -0700

----------------------------------------------------------------------
 .../main/java/org/apache/hadoop/hbase/regionserver/Clocks.java | 5 +++++
 .../hadoop/hbase/regionserver/TestHRegionReplayEvents.java     | 2 +-
 .../hadoop/hbase/regionserver/TestRegionSplitPolicy.java       | 6 ++----
 .../org/apache/hadoop/hbase/regionserver/TestWALLockup.java    | 2 +-
 .../hadoop/hbase/regionserver/wal/AbstractTestWALReplay.java   | 5 ++++-
 5 files changed, 13 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/bc48d841/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Clocks.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Clocks.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Clocks.java
index a401007..ba4d13a 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Clocks.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Clocks.java
@@ -51,6 +51,11 @@ public class Clocks {
     clockTypes.add(hybridLogicalClock.getClockType());
   }
 
+  @VisibleForTesting
+  public Clocks() {
+    this(Clock.DEFAULT_MAX_CLOCK_SKEW_IN_MS);
+  }
+
   public long update(ClockType clockType, long timestamp) {
     return getClock(clockType).update(timestamp);
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/bc48d841/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.java
index 54eaa57..ac7d28e 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.java
@@ -173,7 +173,7 @@ public class TestHRegionReplayEvents {
     when(rss.getServerName()).thenReturn(ServerName.valueOf("foo", 1, 1));
     when(rss.getConfiguration()).thenReturn(CONF);
     when(rss.getRegionServerAccounting()).thenReturn(new 
RegionServerAccounting(CONF));
-    when(rss.getClocks().getClock(any())).thenReturn(new SystemClock());
+    when(rss.getClocks()).thenReturn(new Clocks());
     String string = 
org.apache.hadoop.hbase.executor.EventType.RS_COMPACTED_FILES_DISCHARGER
         .toString();
     ExecutorService es = new ExecutorService(string);

http://git-wip-us.apache.org/repos/asf/hbase/blob/bc48d841/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionSplitPolicy.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionSplitPolicy.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionSplitPolicy.java
index ecc2d8d..811c0a2 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionSplitPolicy.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionSplitPolicy.java
@@ -27,11 +27,9 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.SystemClock;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HConstants;
-import org.apache.hadoop.hbase.ClockType;
 import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.testclassification.RegionServerTests;
@@ -108,7 +106,7 @@ public class TestRegionSplitPolicy {
     final List<Region> regions = new ArrayList<>();
     Mockito.when(rss.getOnlineRegions(TABLENAME)).thenReturn(regions);
     Mockito.when(mockRegion.getRegionServerServices()).thenReturn(rss);
-    Mockito.when(rss.getClocks().getClock(ClockType.SYSTEM)).thenReturn(new 
SystemClock());
+    Mockito.when(rss.getClocks()).thenReturn(new Clocks());
     // Set max size for this 'table'.
     long maxSplitSize = 1024L;
     htd.setMaxFileSize(maxSplitSize);
@@ -170,7 +168,7 @@ public class TestRegionSplitPolicy {
     Mockito.when(mockRegion.getRegionServerServices()).thenReturn(rss);
     Mockito.when(mockRegion.getBlockedRequestsCount()).thenReturn(0L);
     Mockito.when(mockRegion.getWriteRequestsCount()).thenReturn(0L);
-    Mockito.when(rss.getClocks().getClock(ClockType.SYSTEM)).thenReturn(new 
SystemClock());
+    Mockito.when(rss.getClocks()).thenReturn(new Clocks());
 
     BusyRegionSplitPolicy policy =
         (BusyRegionSplitPolicy)RegionSplitPolicy.create(mockRegion, conf);

http://git-wip-us.apache.org/repos/asf/hbase/blob/bc48d841/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestWALLockup.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestWALLockup.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestWALLockup.java
index cf535c8..da67e29 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestWALLockup.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestWALLockup.java
@@ -205,7 +205,7 @@ public class TestWALLockup {
     Mockito.when(server.isStopped()).thenReturn(false);
     Mockito.when(server.isAborted()).thenReturn(false);
     RegionServerServices services = Mockito.mock(RegionServerServices.class);
-    
Mockito.when(services.getClocks().getClock(ClockType.SYSTEM)).thenReturn(new 
SystemClock());
+    Mockito.when(services.getClocks()).thenReturn(new Clocks());
 
     // OK. Now I have my mocked up Server & RegionServerServices and dodgy 
WAL, go ahead with test.
     FileSystem fs = FileSystem.get(CONF);

http://git-wip-us.apache.org/repos/asf/hbase/blob/bc48d841/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.java
index ebbcf2e..6943932 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.java
@@ -63,6 +63,7 @@ import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.client.Table;
 import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
 import org.apache.hadoop.hbase.monitoring.MonitoredTask;
+import org.apache.hadoop.hbase.regionserver.Clocks;
 import 
org.apache.hadoop.hbase.shaded.protobuf.generated.ZooKeeperProtos.SplitLogTask.RecoveryMode;
 import org.apache.hadoop.hbase.regionserver.DefaultStoreEngine;
 import org.apache.hadoop.hbase.regionserver.DefaultStoreFlusher;
@@ -687,7 +688,9 @@ public abstract class AbstractTestWALReplay {
     WAL wal = createWAL(this.conf, hbaseRootDir, logName);
     RegionServerServices rsServices = Mockito.mock(RegionServerServices.class);
     Mockito.doReturn(false).when(rsServices).isAborted();
-    
when(rsServices.getClocks().getClock(clock.getClockType())).thenReturn(clock);
+    Clocks clocks = new Clocks();
+    clocks.setClock(clock);
+    Mockito.when(rsServices.getClocks()).thenReturn(clocks);
     when(rsServices.getServerName()).thenReturn(ServerName.valueOf("foo", 10, 
10));
     Configuration customConf = new Configuration(this.conf);
     customConf.set(DefaultStoreEngine.DEFAULT_STORE_FLUSHER_CLASS_KEY,

Reply via email to