[ 
https://issues.apache.org/jira/browse/TEPHRA-285?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Poorna Chandra updated TEPHRA-285:
----------------------------------
    Description: 
TransactionProcessorTest in tephra-hbase-compat-1.4 fails with the following 
exception on JDK 7. It works fine on JDK 8 though.

This issue was exposed by TEPHRA-272.

 
{code:java}
2018-03-08 16:59:50,416 - ERROR [main:o.a.h.h.c.CoprocessorHost@543] - The 
coprocessor org.apache.tephra.hbase.coprocessor.TransactionProcessor threw 
java.util.ServiceConfigurationError: 
org.apache.hadoop.hbase.metrics.MetricRegistries: Provider 
org.apache.hadoop.hbase.metrics.impl.MetricRegistriesImpl not found
java.util.ServiceConfigurationError: 
org.apache.hadoop.hbase.metrics.MetricRegistries: Provider 
org.apache.hadoop.hbase.metrics.impl.MetricRegistriesImpl not found
        at java.util.ServiceLoader.fail(ServiceLoader.java:231) ~[na:1.7.0_80]
        at java.util.ServiceLoader.access$300(ServiceLoader.java:181) 
~[na:1.7.0_80]
        at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:365) 
~[na:1.7.0_80]
        at java.util.ServiceLoader$1.next(ServiceLoader.java:445) ~[na:1.7.0_80]
        at 
org.apache.hadoop.hbase.metrics.MetricRegistriesLoader.getDefinedImplemantations(MetricRegistriesLoader.java:91)
 ~[hbase-metrics-api-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.metrics.MetricRegistriesLoader.load(MetricRegistriesLoader.java:49)
 ~[hbase-metrics-api-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.metrics.MetricRegistries$LazyHolder.<clinit>(MetricRegistries.java:40)
 ~[hbase-metrics-api-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.metrics.MetricRegistries.global(MetricRegistries.java:48)
 ~[hbase-metrics-api-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.coprocessor.MetricsCoprocessor.createRegistryForRegionCoprocessor(MetricsCoprocessor.java:114)
 ~[hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$RegionEnvironment.<init>(RegionCoprocessorHost.java:141)
 ~[hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.createEnvironment(RegionCoprocessorHost.java:419)
 [hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.createEnvironment(RegionCoprocessorHost.java:94)
 [hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.coprocessor.CoprocessorHost.loadInstance(CoprocessorHost.java:272)
 ~[hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.coprocessor.CoprocessorHost.load(CoprocessorHost.java:229)
 ~[hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.coprocessor.CoprocessorHost.load(CoprocessorHost.java:188)
 ~[hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.loadTableCoprocessors(RegionCoprocessorHost.java:376)
 [hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.<init>(RegionCoprocessorHost.java:238)
 [hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.regionserver.HRegion.<init>(HRegion.java:796) 
[hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.tephra.hbase.coprocessor.TransactionProcessorTest.createRegion(TransactionProcessorTest.java:576)
 [test-classes/:na]
        at 
org.apache.tephra.hbase.coprocessor.TransactionProcessorTest.testFamilyDeleteTimestamp(TransactionProcessorTest.java:386)
 [test-classes/:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[na:1.7.0_80]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
~[na:1.7.0_80]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[na:1.7.0_80]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_80]
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
 [junit-4.11.jar:na]
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
 [junit-4.11.jar:na]
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
 [junit-4.11.jar:na]
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
 [junit-4.11.jar:na]
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) 
[junit-4.11.jar:na]
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
 [junit-4.11.jar:na]
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
 [junit-4.11.jar:na]
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) 
[junit-4.11.jar:na]
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) 
[junit-4.11.jar:na]
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) 
[junit-4.11.jar:na]
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) 
[junit-4.11.jar:na]
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) 
[junit-4.11.jar:na]
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
[junit-4.11.jar:na]
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) 
[junit-4.11.jar:na]
        at 
org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) 
[junit-4.11.jar:na]
        at org.junit.rules.RunRules.evaluate(RunRules.java:20) 
[junit-4.11.jar:na]
        at org.junit.runners.ParentRunner.run(ParentRunner.java:309) 
[junit-4.11.jar:na]
        at org.junit.runner.JUnitCore.run(JUnitCore.java:160) 
[junit-4.11.jar:na]
        at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
 [junit-rt.jar:na]
        at 
com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
 [junit-rt.jar:na]
        at 
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
 [junit-rt.jar:na]
        at 
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) 
[junit-rt.jar:na]

java.lang.NoClassDefFoundError: Could not initialize class 
org.apache.hadoop.hbase.metrics.MetricRegistries$LazyHolder
        at 
org.apache.hadoop.hbase.metrics.MetricRegistries.global(MetricRegistries.java:48)
        at 
org.apache.hadoop.hbase.metrics.BaseSourceImpl.<init>(BaseSourceImpl.java:118)
        at 
org.apache.hadoop.hbase.regionserver.MetricsRegionAggregateSourceImpl.<init>(MetricsRegionAggregateSourceImpl.java:56)
        at 
org.apache.hadoop.hbase.regionserver.MetricsRegionAggregateSourceImpl.<init>(MetricsRegionAggregateSourceImpl.java:48)
        at 
org.apache.hadoop.hbase.regionserver.MetricsRegionServerSourceFactoryImpl.getAggregate(MetricsRegionServerSourceFactoryImpl.java:41)
        at 
org.apache.hadoop.hbase.regionserver.MetricsRegionServerSourceFactoryImpl.createRegion(MetricsRegionServerSourceFactoryImpl.java:64)
        at 
org.apache.hadoop.hbase.regionserver.MetricsRegion.<init>(MetricsRegion.java:35)
        at org.apache.hadoop.hbase.regionserver.HRegion.<init>(HRegion.java:798)
        at 
org.apache.tephra.hbase.coprocessor.TransactionProcessorTest.createRegion(TransactionProcessorTest.java:576)
        at 
org.apache.tephra.hbase.coprocessor.TransactionProcessorTest.testFamilyDeleteTimestamp(TransactionProcessorTest.java:386)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
        at org.junit.rules.RunRules.evaluate(RunRules.java:20)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
        at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
        at 
com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
        at 
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
        at 
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
{code}

  was:
TransactionProcessorTest in tephra-hbase-compat-1.4 fails with the following 
exception on JDK 7. It works fine on JDK 8 though.

 
{code:java}
2018-03-08 16:59:50,416 - ERROR [main:o.a.h.h.c.CoprocessorHost@543] - The 
coprocessor org.apache.tephra.hbase.coprocessor.TransactionProcessor threw 
java.util.ServiceConfigurationError: 
org.apache.hadoop.hbase.metrics.MetricRegistries: Provider 
org.apache.hadoop.hbase.metrics.impl.MetricRegistriesImpl not found
java.util.ServiceConfigurationError: 
org.apache.hadoop.hbase.metrics.MetricRegistries: Provider 
org.apache.hadoop.hbase.metrics.impl.MetricRegistriesImpl not found
        at java.util.ServiceLoader.fail(ServiceLoader.java:231) ~[na:1.7.0_80]
        at java.util.ServiceLoader.access$300(ServiceLoader.java:181) 
~[na:1.7.0_80]
        at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:365) 
~[na:1.7.0_80]
        at java.util.ServiceLoader$1.next(ServiceLoader.java:445) ~[na:1.7.0_80]
        at 
org.apache.hadoop.hbase.metrics.MetricRegistriesLoader.getDefinedImplemantations(MetricRegistriesLoader.java:91)
 ~[hbase-metrics-api-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.metrics.MetricRegistriesLoader.load(MetricRegistriesLoader.java:49)
 ~[hbase-metrics-api-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.metrics.MetricRegistries$LazyHolder.<clinit>(MetricRegistries.java:40)
 ~[hbase-metrics-api-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.metrics.MetricRegistries.global(MetricRegistries.java:48)
 ~[hbase-metrics-api-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.coprocessor.MetricsCoprocessor.createRegistryForRegionCoprocessor(MetricsCoprocessor.java:114)
 ~[hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$RegionEnvironment.<init>(RegionCoprocessorHost.java:141)
 ~[hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.createEnvironment(RegionCoprocessorHost.java:419)
 [hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.createEnvironment(RegionCoprocessorHost.java:94)
 [hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.coprocessor.CoprocessorHost.loadInstance(CoprocessorHost.java:272)
 ~[hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.coprocessor.CoprocessorHost.load(CoprocessorHost.java:229)
 ~[hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.coprocessor.CoprocessorHost.load(CoprocessorHost.java:188)
 ~[hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.loadTableCoprocessors(RegionCoprocessorHost.java:376)
 [hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.<init>(RegionCoprocessorHost.java:238)
 [hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.hadoop.hbase.regionserver.HRegion.<init>(HRegion.java:796) 
[hbase-server-1.4.0.jar:1.4.0]
        at 
org.apache.tephra.hbase.coprocessor.TransactionProcessorTest.createRegion(TransactionProcessorTest.java:576)
 [test-classes/:na]
        at 
org.apache.tephra.hbase.coprocessor.TransactionProcessorTest.testFamilyDeleteTimestamp(TransactionProcessorTest.java:386)
 [test-classes/:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[na:1.7.0_80]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
~[na:1.7.0_80]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[na:1.7.0_80]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_80]
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
 [junit-4.11.jar:na]
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
 [junit-4.11.jar:na]
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
 [junit-4.11.jar:na]
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
 [junit-4.11.jar:na]
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) 
[junit-4.11.jar:na]
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
 [junit-4.11.jar:na]
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
 [junit-4.11.jar:na]
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) 
[junit-4.11.jar:na]
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) 
[junit-4.11.jar:na]
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) 
[junit-4.11.jar:na]
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) 
[junit-4.11.jar:na]
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) 
[junit-4.11.jar:na]
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
[junit-4.11.jar:na]
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) 
[junit-4.11.jar:na]
        at 
org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) 
[junit-4.11.jar:na]
        at org.junit.rules.RunRules.evaluate(RunRules.java:20) 
[junit-4.11.jar:na]
        at org.junit.runners.ParentRunner.run(ParentRunner.java:309) 
[junit-4.11.jar:na]
        at org.junit.runner.JUnitCore.run(JUnitCore.java:160) 
[junit-4.11.jar:na]
        at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
 [junit-rt.jar:na]
        at 
com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
 [junit-rt.jar:na]
        at 
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
 [junit-rt.jar:na]
        at 
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) 
[junit-rt.jar:na]

java.lang.NoClassDefFoundError: Could not initialize class 
org.apache.hadoop.hbase.metrics.MetricRegistries$LazyHolder
        at 
org.apache.hadoop.hbase.metrics.MetricRegistries.global(MetricRegistries.java:48)
        at 
org.apache.hadoop.hbase.metrics.BaseSourceImpl.<init>(BaseSourceImpl.java:118)
        at 
org.apache.hadoop.hbase.regionserver.MetricsRegionAggregateSourceImpl.<init>(MetricsRegionAggregateSourceImpl.java:56)
        at 
org.apache.hadoop.hbase.regionserver.MetricsRegionAggregateSourceImpl.<init>(MetricsRegionAggregateSourceImpl.java:48)
        at 
org.apache.hadoop.hbase.regionserver.MetricsRegionServerSourceFactoryImpl.getAggregate(MetricsRegionServerSourceFactoryImpl.java:41)
        at 
org.apache.hadoop.hbase.regionserver.MetricsRegionServerSourceFactoryImpl.createRegion(MetricsRegionServerSourceFactoryImpl.java:64)
        at 
org.apache.hadoop.hbase.regionserver.MetricsRegion.<init>(MetricsRegion.java:35)
        at org.apache.hadoop.hbase.regionserver.HRegion.<init>(HRegion.java:798)
        at 
org.apache.tephra.hbase.coprocessor.TransactionProcessorTest.createRegion(TransactionProcessorTest.java:576)
        at 
org.apache.tephra.hbase.coprocessor.TransactionProcessorTest.testFamilyDeleteTimestamp(TransactionProcessorTest.java:386)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
        at org.junit.rules.RunRules.evaluate(RunRules.java:20)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
        at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
        at 
com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
        at 
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
        at 
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
{code}


> Fix TransactionProcessorTest in tephra-hbase-compat-1.4
> -------------------------------------------------------
>
>                 Key: TEPHRA-285
>                 URL: https://issues.apache.org/jira/browse/TEPHRA-285
>             Project: Tephra
>          Issue Type: Bug
>          Components: tephra-hbase-compat-1.4
>         Environment: JDK 7
>            Reporter: Poorna Chandra
>            Assignee: Poorna Chandra
>            Priority: Critical
>             Fix For: 0.14.0-incubating
>
>
> TransactionProcessorTest in tephra-hbase-compat-1.4 fails with the following 
> exception on JDK 7. It works fine on JDK 8 though.
> This issue was exposed by TEPHRA-272.
>  
> {code:java}
> 2018-03-08 16:59:50,416 - ERROR [main:o.a.h.h.c.CoprocessorHost@543] - The 
> coprocessor org.apache.tephra.hbase.coprocessor.TransactionProcessor threw 
> java.util.ServiceConfigurationError: 
> org.apache.hadoop.hbase.metrics.MetricRegistries: Provider 
> org.apache.hadoop.hbase.metrics.impl.MetricRegistriesImpl not found
> java.util.ServiceConfigurationError: 
> org.apache.hadoop.hbase.metrics.MetricRegistries: Provider 
> org.apache.hadoop.hbase.metrics.impl.MetricRegistriesImpl not found
>       at java.util.ServiceLoader.fail(ServiceLoader.java:231) ~[na:1.7.0_80]
>       at java.util.ServiceLoader.access$300(ServiceLoader.java:181) 
> ~[na:1.7.0_80]
>       at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:365) 
> ~[na:1.7.0_80]
>       at java.util.ServiceLoader$1.next(ServiceLoader.java:445) ~[na:1.7.0_80]
>       at 
> org.apache.hadoop.hbase.metrics.MetricRegistriesLoader.getDefinedImplemantations(MetricRegistriesLoader.java:91)
>  ~[hbase-metrics-api-1.4.0.jar:1.4.0]
>       at 
> org.apache.hadoop.hbase.metrics.MetricRegistriesLoader.load(MetricRegistriesLoader.java:49)
>  ~[hbase-metrics-api-1.4.0.jar:1.4.0]
>       at 
> org.apache.hadoop.hbase.metrics.MetricRegistries$LazyHolder.<clinit>(MetricRegistries.java:40)
>  ~[hbase-metrics-api-1.4.0.jar:1.4.0]
>       at 
> org.apache.hadoop.hbase.metrics.MetricRegistries.global(MetricRegistries.java:48)
>  ~[hbase-metrics-api-1.4.0.jar:1.4.0]
>       at 
> org.apache.hadoop.hbase.coprocessor.MetricsCoprocessor.createRegistryForRegionCoprocessor(MetricsCoprocessor.java:114)
>  ~[hbase-server-1.4.0.jar:1.4.0]
>       at 
> org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$RegionEnvironment.<init>(RegionCoprocessorHost.java:141)
>  ~[hbase-server-1.4.0.jar:1.4.0]
>       at 
> org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.createEnvironment(RegionCoprocessorHost.java:419)
>  [hbase-server-1.4.0.jar:1.4.0]
>       at 
> org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.createEnvironment(RegionCoprocessorHost.java:94)
>  [hbase-server-1.4.0.jar:1.4.0]
>       at 
> org.apache.hadoop.hbase.coprocessor.CoprocessorHost.loadInstance(CoprocessorHost.java:272)
>  ~[hbase-server-1.4.0.jar:1.4.0]
>       at 
> org.apache.hadoop.hbase.coprocessor.CoprocessorHost.load(CoprocessorHost.java:229)
>  ~[hbase-server-1.4.0.jar:1.4.0]
>       at 
> org.apache.hadoop.hbase.coprocessor.CoprocessorHost.load(CoprocessorHost.java:188)
>  ~[hbase-server-1.4.0.jar:1.4.0]
>       at 
> org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.loadTableCoprocessors(RegionCoprocessorHost.java:376)
>  [hbase-server-1.4.0.jar:1.4.0]
>       at 
> org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.<init>(RegionCoprocessorHost.java:238)
>  [hbase-server-1.4.0.jar:1.4.0]
>       at 
> org.apache.hadoop.hbase.regionserver.HRegion.<init>(HRegion.java:796) 
> [hbase-server-1.4.0.jar:1.4.0]
>       at 
> org.apache.tephra.hbase.coprocessor.TransactionProcessorTest.createRegion(TransactionProcessorTest.java:576)
>  [test-classes/:na]
>       at 
> org.apache.tephra.hbase.coprocessor.TransactionProcessorTest.testFamilyDeleteTimestamp(TransactionProcessorTest.java:386)
>  [test-classes/:na]
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
> ~[na:1.7.0_80]
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
> ~[na:1.7.0_80]
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  ~[na:1.7.0_80]
>       at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_80]
>       at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
>  [junit-4.11.jar:na]
>       at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>  [junit-4.11.jar:na]
>       at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
>  [junit-4.11.jar:na]
>       at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>  [junit-4.11.jar:na]
>       at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) 
> [junit-4.11.jar:na]
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
>  [junit-4.11.jar:na]
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
>  [junit-4.11.jar:na]
>       at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) 
> [junit-4.11.jar:na]
>       at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) 
> [junit-4.11.jar:na]
>       at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) 
> [junit-4.11.jar:na]
>       at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) 
> [junit-4.11.jar:na]
>       at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) 
> [junit-4.11.jar:na]
>       at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
> [junit-4.11.jar:na]
>       at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) 
> [junit-4.11.jar:na]
>       at 
> org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) 
> [junit-4.11.jar:na]
>       at org.junit.rules.RunRules.evaluate(RunRules.java:20) 
> [junit-4.11.jar:na]
>       at org.junit.runners.ParentRunner.run(ParentRunner.java:309) 
> [junit-4.11.jar:na]
>       at org.junit.runner.JUnitCore.run(JUnitCore.java:160) 
> [junit-4.11.jar:na]
>       at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
>  [junit-rt.jar:na]
>       at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
>  [junit-rt.jar:na]
>       at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
>  [junit-rt.jar:na]
>       at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) 
> [junit-rt.jar:na]
> java.lang.NoClassDefFoundError: Could not initialize class 
> org.apache.hadoop.hbase.metrics.MetricRegistries$LazyHolder
>       at 
> org.apache.hadoop.hbase.metrics.MetricRegistries.global(MetricRegistries.java:48)
>       at 
> org.apache.hadoop.hbase.metrics.BaseSourceImpl.<init>(BaseSourceImpl.java:118)
>       at 
> org.apache.hadoop.hbase.regionserver.MetricsRegionAggregateSourceImpl.<init>(MetricsRegionAggregateSourceImpl.java:56)
>       at 
> org.apache.hadoop.hbase.regionserver.MetricsRegionAggregateSourceImpl.<init>(MetricsRegionAggregateSourceImpl.java:48)
>       at 
> org.apache.hadoop.hbase.regionserver.MetricsRegionServerSourceFactoryImpl.getAggregate(MetricsRegionServerSourceFactoryImpl.java:41)
>       at 
> org.apache.hadoop.hbase.regionserver.MetricsRegionServerSourceFactoryImpl.createRegion(MetricsRegionServerSourceFactoryImpl.java:64)
>       at 
> org.apache.hadoop.hbase.regionserver.MetricsRegion.<init>(MetricsRegion.java:35)
>       at org.apache.hadoop.hbase.regionserver.HRegion.<init>(HRegion.java:798)
>       at 
> org.apache.tephra.hbase.coprocessor.TransactionProcessorTest.createRegion(TransactionProcessorTest.java:576)
>       at 
> org.apache.tephra.hbase.coprocessor.TransactionProcessorTest.testFamilyDeleteTimestamp(TransactionProcessorTest.java:386)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:606)
>       at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
>       at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>       at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
>       at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>       at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
>       at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
>       at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
>       at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
>       at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
>       at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
>       at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
>       at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>       at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
>       at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>       at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
>       at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
>       at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
>       at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
>       at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
>       at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to