hbase git commit: HBASE-21136 NPE in MetricsTableSourceImpl.updateFlushTime

2018-09-02 Thread zhangduo
Repository: hbase
Updated Branches:
  refs/heads/branch-2 1a324e3a7 -> 68c5313ca


HBASE-21136 NPE in MetricsTableSourceImpl.updateFlushTime


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

Branch: refs/heads/branch-2
Commit: 68c5313ca43ecd1fc27873da3cd3a1bbb8510e88
Parents: 1a324e3
Author: zhangduo 
Authored: Sat Sep 1 20:00:35 2018 +0800
Committer: zhangduo 
Committed: Sun Sep 2 18:32:24 2018 +0800

--
 .../MetricsTableAggregateSourceImpl.java| 28 +
 .../regionserver/MetricsTableSourceImpl.java| 33 ++-
 .../regionserver/TestMetricsTableAggregate.java | 44 +++-
 3 files changed, 64 insertions(+), 41 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/68c5313c/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java
--
diff --git 
a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java
 
b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java
index 363ddd2..5133a96 100644
--- 
a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java
+++ 
b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java
@@ -48,19 +48,15 @@ public class MetricsTableAggregateSourceImpl extends 
BaseSourceImpl
   }
 
   private void register(MetricsTableSource source) {
-synchronized (this) {
-  source.registerMetrics();
-}
+source.registerMetrics();
   }
 
   @Override
   public void deleteTableSource(String table) {
 try {
-  synchronized (this) {
-MetricsTableSource source = tableSources.remove(table);
-if (source != null) {
-  source.close();
-}
+  MetricsTableSource source = tableSources.remove(table);
+  if (source != null) {
+source.close();
   }
 } catch (Exception e) {
   // Ignored. If this errors out it means that someone is double
@@ -76,17 +72,13 @@ public class MetricsTableAggregateSourceImpl extends 
BaseSourceImpl
 if (source != null) {
   return source;
 }
-source = 
CompatibilitySingletonFactory.getInstance(MetricsRegionServerSourceFactory.class)
-  .createTable(table, wrapper);
-MetricsTableSource prev = tableSources.putIfAbsent(table, source);
-
-if (prev != null) {
-  return prev;
-} else {
+MetricsTableSource newSource = CompatibilitySingletonFactory
+  .getInstance(MetricsRegionServerSourceFactory.class).createTable(table, 
wrapper);
+return tableSources.computeIfAbsent(table, k -> {
   // register the new metrics now
-  register(source);
-}
-return source;
+  newSource.registerMetrics();
+  return newSource;
+});
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/68c5313c/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
--
diff --git 
a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
 
b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
index da78a2c..0807479 100644
--- 
a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
+++ 
b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
@@ -15,21 +15,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.hadoop.hbase.regionserver;
 
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.metrics.Interns;
-import org.apache.hadoop.metrics2.MetricsRecordBuilder;
-import org.apache.hadoop.metrics2.MetricHistogram;
-import org.apache.hadoop.metrics2.lib.DynamicMetricsRegistry;
-import org.apache.hadoop.metrics2.lib.MutableFastCounter;
-import org.apache.yetus.audience.InterfaceAudience;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import static 
org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.COMPACTED_INPUT_BYTES;
 import static 
org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.COMPACTED_INPUT_BYTES_DESC;
 import static 
org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.COMPACTED_OUTPUT_BYTES;
@@ -74,6 +61,17 @@ import static 

hbase git commit: HBASE-21136 NPE in MetricsTableSourceImpl.updateFlushTime

2018-09-02 Thread zhangduo
Repository: hbase
Updated Branches:
  refs/heads/master 9c09efc0d -> dc7902996


HBASE-21136 NPE in MetricsTableSourceImpl.updateFlushTime


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

Branch: refs/heads/master
Commit: dc79029966c72f6c46add8c382e118308609cc81
Parents: 9c09efc
Author: zhangduo 
Authored: Sat Sep 1 20:00:35 2018 +0800
Committer: zhangduo 
Committed: Sun Sep 2 18:35:45 2018 +0800

--
 .../MetricsTableAggregateSourceImpl.java| 28 +
 .../regionserver/MetricsTableSourceImpl.java| 33 ++-
 .../regionserver/TestMetricsTableAggregate.java | 44 +++-
 3 files changed, 64 insertions(+), 41 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/dc790299/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java
--
diff --git 
a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java
 
b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java
index 363ddd2..5133a96 100644
--- 
a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java
+++ 
b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java
@@ -48,19 +48,15 @@ public class MetricsTableAggregateSourceImpl extends 
BaseSourceImpl
   }
 
   private void register(MetricsTableSource source) {
-synchronized (this) {
-  source.registerMetrics();
-}
+source.registerMetrics();
   }
 
   @Override
   public void deleteTableSource(String table) {
 try {
-  synchronized (this) {
-MetricsTableSource source = tableSources.remove(table);
-if (source != null) {
-  source.close();
-}
+  MetricsTableSource source = tableSources.remove(table);
+  if (source != null) {
+source.close();
   }
 } catch (Exception e) {
   // Ignored. If this errors out it means that someone is double
@@ -76,17 +72,13 @@ public class MetricsTableAggregateSourceImpl extends 
BaseSourceImpl
 if (source != null) {
   return source;
 }
-source = 
CompatibilitySingletonFactory.getInstance(MetricsRegionServerSourceFactory.class)
-  .createTable(table, wrapper);
-MetricsTableSource prev = tableSources.putIfAbsent(table, source);
-
-if (prev != null) {
-  return prev;
-} else {
+MetricsTableSource newSource = CompatibilitySingletonFactory
+  .getInstance(MetricsRegionServerSourceFactory.class).createTable(table, 
wrapper);
+return tableSources.computeIfAbsent(table, k -> {
   // register the new metrics now
-  register(source);
-}
-return source;
+  newSource.registerMetrics();
+  return newSource;
+});
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/dc790299/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
--
diff --git 
a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
 
b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
index 9ac62cd..3da16b8 100644
--- 
a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
+++ 
b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
@@ -15,21 +15,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.hadoop.hbase.regionserver;
 
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.metrics.Interns;
-import org.apache.hadoop.metrics2.MetricsRecordBuilder;
-import org.apache.hadoop.metrics2.MetricHistogram;
-import org.apache.hadoop.metrics2.lib.DynamicMetricsRegistry;
-import org.apache.hadoop.metrics2.lib.MutableFastCounter;
-import org.apache.yetus.audience.InterfaceAudience;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import static 
org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.COMPACTED_INPUT_BYTES;
 import static 
org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.COMPACTED_INPUT_BYTES_DESC;
 import static 
org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.COMPACTED_OUTPUT_BYTES;
@@ -74,6 +61,17 @@ import static