See
<https://builds.apache.org/job/brooklyn-master-build-docker/558/display/redirect>
------------------------------------------
[...truncated 4.45 MB...]
2018-07-27 13:29:58,004 INFO - TESTNG PASSED: "Surefire test" -
org.apache.brooklyn.core.objs.AbstractEntityAdjunctTest.testImmutableFlags()
finished in 2 ms
2018-07-27 13:29:58,005 INFO - TESTNG INVOKING CONFIGURATION: "Surefire test"
- @BeforeMethod org.apache.brooklyn.core.objs.proxy.ClassLoaderCacheTest.setUp()
2018-07-27 13:29:58,005 INFO - TESTNG PASSED CONFIGURATION: "Surefire test" -
@BeforeMethod org.apache.brooklyn.core.objs.proxy.ClassLoaderCacheTest.setUp()
finished in 1 ms
2018-07-27 13:29:58,005 INFO - TESTNG INVOKING: "Surefire test" -
org.apache.brooklyn.core.objs.proxy.ClassLoaderCacheTest.testDifferentLoader()
2018-07-27 13:29:58,007 INFO - TESTNG PASSED: "Surefire test" -
org.apache.brooklyn.core.objs.proxy.ClassLoaderCacheTest.testDifferentLoader()
finished in 2 ms
2018-07-27 13:29:58,007 INFO - TESTNG INVOKING CONFIGURATION: "Surefire test"
- @BeforeMethod org.apache.brooklyn.core.objs.proxy.ClassLoaderCacheTest.setUp()
2018-07-27 13:29:58,007 INFO - TESTNG PASSED CONFIGURATION: "Surefire test" -
@BeforeMethod org.apache.brooklyn.core.objs.proxy.ClassLoaderCacheTest.setUp()
finished in 0 ms
2018-07-27 13:29:58,007 INFO - TESTNG INVOKING: "Surefire test" -
org.apache.brooklyn.core.objs.proxy.ClassLoaderCacheTest.testSameLoader()
2018-07-27 13:29:58,008 INFO - TESTNG PASSED: "Surefire test" -
org.apache.brooklyn.core.objs.proxy.ClassLoaderCacheTest.testSameLoader()
finished in 1 ms
2018-07-27 13:29:58,008 INFO - TESTNG INVOKING CONFIGURATION: "Surefire test"
- @BeforeMethod
org.apache.brooklyn.core.test.BrooklynMgmtUnitTestSupport.setUp()
2018-07-27 13:29:58,009 INFO - Added external config supplier named
'brooklyn-demo-sample':
org.apache.brooklyn.core.config.external.InPlaceExternalConfigSupplier@1597087b
2018-07-27 13:29:58,009 INFO - TESTNG PASSED CONFIGURATION: "Surefire test" -
@BeforeMethod org.apache.brooklyn.core.test.BrooklynMgmtUnitTestSupport.setUp()
finished in 1 ms
2018-07-27 13:29:58,009 INFO - TESTNG INVOKING: "Surefire test" -
org.apache.brooklyn.core.objs.BasicSpecParameterFromClassTest.testConfigInImplVisible()
2018-07-27 13:29:58,015 INFO - TESTNG PASSED: "Surefire test" -
org.apache.brooklyn.core.objs.BasicSpecParameterFromClassTest.testConfigInImplVisible()
finished in 6 ms
2018-07-27 13:29:58,016 INFO - TESTNG INVOKING CONFIGURATION: "Surefire test"
- @AfterMethod
org.apache.brooklyn.core.test.BrooklynMgmtUnitTestSupport.tearDown()
2018-07-27 13:29:58,016 INFO - TESTNG PASSED CONFIGURATION: "Surefire test" -
@AfterMethod
org.apache.brooklyn.core.test.BrooklynMgmtUnitTestSupport.tearDown() finished
in 0 ms
2018-07-27 13:29:58,017 INFO - TESTNG INVOKING CONFIGURATION: "Surefire test"
- @BeforeMethod
org.apache.brooklyn.core.test.BrooklynMgmtUnitTestSupport.setUp()
2018-07-27 13:29:58,017 INFO - Added external config supplier named
'brooklyn-demo-sample':
org.apache.brooklyn.core.config.external.InPlaceExternalConfigSupplier@38f348b8
2018-07-27 13:29:58,017 INFO - TESTNG PASSED CONFIGURATION: "Surefire test" -
@BeforeMethod org.apache.brooklyn.core.test.BrooklynMgmtUnitTestSupport.setUp()
finished in 0 ms
2018-07-27 13:29:58,017 INFO - TESTNG INVOKING: "Surefire test" -
org.apache.brooklyn.core.objs.BasicSpecParameterFromClassTest.testDebug()
[BasicSpecParameter{label=application.stop.shouldDestroy, pinned=false,
type=application.stop.shouldDestroy[ConfigKey:java.lang.Boolean]},
BasicSpecParameter{label=defaultDisplayName, pinned=false,
type=defaultDisplayName[ConfigKey:java.lang.String]},
BasicSpecParameter{label=latch.start, pinned=false,
type=latch.start[ConfigKey:java.lang.Boolean]},
BasicSpecParameter{label=quorum.running, pinned=false,
type=quorum.running[ConfigKey:org.apache.brooklyn.util.collections.QuorumCheck]},
BasicSpecParameter{label=quorum.up, pinned=false,
type=quorum.up[ConfigKey:org.apache.brooklyn.util.collections.QuorumCheck]}]
2018-07-27 13:29:58,019 INFO - TESTNG PASSED: "Surefire test" -
org.apache.brooklyn.core.objs.BasicSpecParameterFromClassTest.testDebug()
finished in 2 ms
2018-07-27 13:29:58,019 INFO - TESTNG INVOKING CONFIGURATION: "Surefire test"
- @AfterMethod
org.apache.brooklyn.core.test.BrooklynMgmtUnitTestSupport.tearDown()
2018-07-27 13:29:58,019 INFO - TESTNG PASSED CONFIGURATION: "Surefire test" -
@AfterMethod
org.apache.brooklyn.core.test.BrooklynMgmtUnitTestSupport.tearDown() finished
in 0 ms
2018-07-27 13:29:58,020 INFO - TESTNG INVOKING CONFIGURATION: "Surefire test"
- @BeforeMethod
org.apache.brooklyn.core.test.BrooklynMgmtUnitTestSupport.setUp()
2018-07-27 13:29:58,020 INFO - Added external config supplier named
'brooklyn-demo-sample':
org.apache.brooklyn.core.config.external.InPlaceExternalConfigSupplier@21e25df0
2018-07-27 13:29:58,020 INFO - TESTNG PASSED CONFIGURATION: "Surefire test" -
@BeforeMethod org.apache.brooklyn.core.test.BrooklynMgmtUnitTestSupport.setUp()
finished in 0 ms
2018-07-27 13:29:58,020 INFO - TESTNG INVOKING: "Surefire test" -
org.apache.brooklyn.core.objs.BasicSpecParameterFromClassTest.testFullDefinition()
2018-07-27 13:29:58,022 INFO - TESTNG PASSED: "Surefire test" -
org.apache.brooklyn.core.objs.BasicSpecParameterFromClassTest.testFullDefinition()
finished in 2 ms
2018-07-27 13:29:58,022 INFO - TESTNG INVOKING CONFIGURATION: "Surefire test"
- @AfterMethod
org.apache.brooklyn.core.test.BrooklynMgmtUnitTestSupport.tearDown()
2018-07-27 13:29:58,022 INFO - TESTNG PASSED CONFIGURATION: "Surefire test" -
@AfterMethod
org.apache.brooklyn.core.test.BrooklynMgmtUnitTestSupport.tearDown() finished
in 0 ms
2018-07-27 13:29:58,352 INFO - TESTNG
===============================================
Surefire test
Tests run: 2323, Failures: 6, Skips: 2
Configuration Failures: 2, Skips: 0
===============================================
[GC (Allocation Failure) 468957K->282358K(747520K), 0.0239893 secs]
[GC (Allocation Failure) 468214K->280849K(750592K), 0.0291789 secs]
[GC (Allocation Failure) 470289K->282073K(749568K), 0.0181675 secs]
[GC (Allocation Failure) 471513K->281951K(752128K), 0.0130297 secs]
[GC (Allocation Failure) 474975K->281935K(751616K), 0.0396137 secs]
[GC (Allocation Failure) 474959K->282039K(754688K), 0.0079364 secs]
[GC (Allocation Failure) 479671K->282303K(753664K), 0.0173290 secs]
Tests run: 2325, Failures: 8, Errors: 0, Skipped: 2, Time elapsed: 188.917 sec
<<< FAILURE! - in TestSuite
setUp(org.apache.brooklyn.core.feed.ConfigToAttributesTest) Time elapsed: 0.44
sec <<< FAILURE!
org.apache.brooklyn.util.exceptions.PropagatedRuntimeException:
at
org.apache.brooklyn.core.feed.ConfigToAttributesTest.setUp(ConfigToAttributesTest.java:42)
Caused by: org.osgi.framework.BundleException: Error creating bundle cache.
at
org.apache.brooklyn.core.feed.ConfigToAttributesTest.setUp(ConfigToAttributesTest.java:42)
Caused by: java.lang.RuntimeException: Unable to create cache directory.
at
org.apache.brooklyn.core.feed.ConfigToAttributesTest.setUp(ConfigToAttributesTest.java:42)
setUp(org.apache.brooklyn.core.feed.ConfigToAttributesTest) Time elapsed:
0.027 sec <<< FAILURE!
org.apache.brooklyn.util.exceptions.PropagatedRuntimeException:
at
org.apache.brooklyn.core.feed.ConfigToAttributesTest.setUp(ConfigToAttributesTest.java:42)
Caused by: org.osgi.framework.BundleException: Error creating bundle cache.
at
org.apache.brooklyn.core.feed.ConfigToAttributesTest.setUp(ConfigToAttributesTest.java:42)
Caused by: java.lang.RuntimeException: Unable to create cache directory.
at
org.apache.brooklyn.core.feed.ConfigToAttributesTest.setUp(ConfigToAttributesTest.java:42)
testUninitializedThrows(org.apache.brooklyn.core.mgmt.rebind.ManagementPlaneIdTest)
Time elapsed: 0.028 sec <<< FAILURE!
org.apache.brooklyn.util.exceptions.PropagatedRuntimeException:
at
org.apache.brooklyn.core.mgmt.rebind.ManagementPlaneIdTest.testUninitializedThrows(ManagementPlaneIdTest.java:78)
Caused by: org.osgi.framework.BundleException: Error creating bundle cache.
at
org.apache.brooklyn.core.mgmt.rebind.ManagementPlaneIdTest.testUninitializedThrows(ManagementPlaneIdTest.java:78)
Caused by: java.lang.RuntimeException: Unable to create cache directory.
at
org.apache.brooklyn.core.mgmt.rebind.ManagementPlaneIdTest.testUninitializedThrows(ManagementPlaneIdTest.java:78)
testGenerateGroupIdWithEntity(org.apache.brooklyn.core.location.cloud.CloudMachineNamerTest)
Time elapsed: 0.026 sec <<< FAILURE!
java.lang.AssertionError: expected [true] but found [false]
at
org.apache.brooklyn.core.location.cloud.CloudMachineNamerTest.testGenerateGroupIdWithEntity(CloudMachineNamerTest.java:64)
testGenerateNewMachineName(org.apache.brooklyn.core.location.cloud.CloudMachineNamerTest)
Time elapsed: 0.032 sec <<< FAILURE!
java.lang.AssertionError: expected [true] but found [false]
at
org.apache.brooklyn.core.location.cloud.CloudMachineNamerTest.testGenerateNewMachineName(CloudMachineNamerTest.java:83)
terminateAll(org.apache.brooklyn.core.mgmt.internal.LocalManagementContextInstancesTest)
Time elapsed: 0.013 sec <<< FAILURE!
org.apache.brooklyn.util.exceptions.PropagatedRuntimeException:
at
org.apache.brooklyn.core.mgmt.internal.LocalManagementContextInstancesTest.terminateAll(LocalManagementContextInstancesTest.java:65)
Caused by: org.osgi.framework.BundleException: Error creating bundle cache.
at
org.apache.brooklyn.core.mgmt.internal.LocalManagementContextInstancesTest.terminateAll(LocalManagementContextInstancesTest.java:65)
Caused by: java.lang.RuntimeException: Unable to create cache directory.
at
org.apache.brooklyn.core.mgmt.internal.LocalManagementContextInstancesTest.terminateAll(LocalManagementContextInstancesTest.java:65)
terminateExplicitContext(org.apache.brooklyn.core.mgmt.internal.LocalManagementContextInstancesTest)
Time elapsed: 0.012 sec <<< FAILURE!
org.apache.brooklyn.util.exceptions.PropagatedRuntimeException:
at
org.apache.brooklyn.core.mgmt.internal.LocalManagementContextInstancesTest.terminateExplicitContext(LocalManagementContextInstancesTest.java:77)
Caused by: org.osgi.framework.BundleException: Error creating bundle cache.
at
org.apache.brooklyn.core.mgmt.internal.LocalManagementContextInstancesTest.terminateExplicitContext(LocalManagementContextInstancesTest.java:77)
Caused by: java.lang.RuntimeException: Unable to create cache directory.
at
org.apache.brooklyn.core.mgmt.internal.LocalManagementContextInstancesTest.terminateExplicitContext(LocalManagementContextInstancesTest.java:77)
testAssociationPreservedOnStateExport(org.apache.brooklyn.core.location.access.PortForwardManagerRebindTest)
Time elapsed: 0.017 sec <<< FAILURE!
org.apache.brooklyn.util.exceptions.FatalConfigurationRuntimeException: Failed
to create persistence directory
/var/maven/.brooklyn/tmp/web-persistence-ZB61zvXt-2018-07-27-1329-VBt6
at
org.apache.brooklyn.core.location.access.PortForwardManagerRebindTest.testAssociationPreservedOnStateExport(PortForwardManagerRebindTest.java:109)
2018-07-27 13:30:02,299 INFO - Brooklyn shutdown: stopping entities
[TestEntityImpl{id=hbhj8g3w10}, TestEntityImpl{id=wja884mwyl},
BlockingEntityImpl{id=rfowdgm73n}]
Results :
Failed tests:
org.apache.brooklyn.core.feed.ConfigToAttributesTest.setUp(org.apache.brooklyn.core.feed.ConfigToAttributesTest)
Run 1: ConfigToAttributesTest.setUp:42 » PropagatedRuntime
Run 2: ConfigToAttributesTest.setUp:42 » PropagatedRuntime
PortForwardManagerRebindTest.testAssociationPreservedOnStateExport:109 »
FatalConfigurationRuntime
CloudMachineNamerTest.testGenerateGroupIdWithEntity:64 expected [true] but
found [false]
CloudMachineNamerTest.testGenerateNewMachineName:83 expected [true] but found
[false]
LocalManagementContextInstancesTest.terminateAll:65 » PropagatedRuntime
LocalManagementContextInstancesTest.terminateExplicitContext:77 »
PropagatedRuntime
ManagementPlaneIdTest.testUninitializedThrows:78 » PropagatedRuntime
Tests run: 2324, Failures: 7, Errors: 0, Skipped: 2
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Brooklyn Server Root ............................... SUCCESS [ 1.876 s]
[INFO] Brooklyn Parent Project ............................ SUCCESS [ 3.272 s]
[INFO] Brooklyn Test Support Utilities .................... SUCCESS [ 8.136 s]
[INFO] Brooklyn Logback Includable Configuration .......... SUCCESS [ 0.632 s]
[INFO] Brooklyn Common Utilities .......................... SUCCESS [ 30.539 s]
[INFO] Brooklyn API ....................................... SUCCESS [ 2.124 s]
[INFO] CAMP Server Parent Project ......................... SUCCESS [ 0.190 s]
[INFO] CAMP Base .......................................... SUCCESS [ 3.888 s]
[INFO] Brooklyn Test Support .............................. SUCCESS [ 1.269 s]
[INFO] Brooklyn REST Swagger Apidoc Utilities ............. SUCCESS [ 7.916 s]
[INFO] Brooklyn Logback Configuration ..................... SUCCESS [ 0.280 s]
[INFO] CAMP Server ........................................ SUCCESS [ 12.167 s]
[INFO] Brooklyn Felix Runtime ............................. SUCCESS [ 3.893 s]
[INFO] Brooklyn Groovy Utilities .......................... SUCCESS [ 2.564 s]
[INFO] Brooklyn Core ...................................... FAILURE [04:08 min]
[INFO] Brooklyn Policies .................................. SKIPPED
[INFO] Brooklyn WinRM Software Entities ................... SKIPPED
[INFO] Brooklyn Secure JMXMP Agent ........................ SKIPPED
[INFO] Brooklyn JMX RMI Agent ............................. SKIPPED
[INFO] Brooklyn Jclouds Location Targets .................. SKIPPED
[INFO] Brooklyn Software Base ............................. SKIPPED
[INFO] Brooklyn CAMP ...................................... SKIPPED
[INFO] Brooklyn Launcher Common ........................... SKIPPED
[INFO] Brooklyn REST API .................................. SKIPPED
[INFO] Brooklyn REST Resources ............................ SKIPPED
[INFO] Brooklyn REST Server ............................... SKIPPED
[INFO] Brooklyn Launcher .................................. SKIPPED
[INFO] Brooklyn Container Location Targets ................ SKIPPED
[INFO] Brooklyn Command Line Interface .................... SKIPPED
[INFO] Brooklyn Test Framework ............................ SKIPPED
[INFO] Brooklyn OSGi init ................................. SKIPPED
[INFO] Brooklyn OSGi start ................................ SKIPPED
[INFO] Brooklyn Karaf ..................................... SKIPPED
[INFO] Jetty config fragment .............................. SKIPPED
[INFO] Apache Http Component extension .................... SKIPPED
[INFO] Brooklyn Karaf Features ............................ SKIPPED
[INFO] Brooklyn Karaf Shell Commands ...................... SKIPPED
[INFO] Brooklyn UI :: Parent .............................. SKIPPED
[INFO] Brooklyn UI :: Modularity Server (parent) .......... SKIPPED
[INFO] Brooklyn UI :: Modularity Server :: UI Module API .. SKIPPED
[INFO] Brooklyn UI :: Modularity Server :: UI Module Registry SKIPPED
[INFO] Brooklyn UI :: Modularity Server :: UI Proxy ....... SKIPPED
[INFO] Brooklyn UI :: Modularity Server :: UI Metadata Registry SKIPPED
[INFO] Brooklyn UI :: Modularity Server :: External UI Modules Registration
Hooks SKIPPED
[INFO] Brooklyn UI :: Modularity Server :: Features ....... SKIPPED
[INFO] Brooklyn UI :: Modules (parent) .................... SKIPPED
[INFO] Brooklyn UI :: Modules - UI Utils .................. SKIPPED
[INFO] Brooklyn UI :: Modules - Home ...................... SKIPPED
[INFO] Brooklyn UI :: Modules - App inspector ............. SKIPPED
[INFO] Brooklyn UI :: Modules - Blueprint composer ........ SKIPPED
[INFO] Brooklyn UI :: Modules - Blueprint importer ........ SKIPPED
[INFO] Brooklyn UI :: Modules - Catalog ................... SKIPPED
[INFO] Brooklyn UI :: Modules - Location manager .......... SKIPPED
[INFO] Brooklyn UI :: Modules - REST API Docs ............. SKIPPED
[INFO] Brooklyn UI :: Modules - Groovy console ............ SKIPPED
[INFO] Brooklyn UI :: Modules - Logout .................... SKIPPED
[INFO] Brooklyn UI :: Modules - Features .................. SKIPPED
[INFO] Brooklyn UI :: Features ............................ SKIPPED
[INFO] Brooklyn Library Root .............................. SKIPPED
[INFO] Brooklyn CM Chef ................................... SKIPPED
[INFO] Brooklyn CM SaltStack .............................. SKIPPED
[INFO] Brooklyn CM Ansible ................................ SKIPPED
[INFO] Brooklyn CM Integration Root ....................... SKIPPED
[INFO] Brooklyn Network Software Entities ................. SKIPPED
[INFO] Brooklyn OSGi Software Entities .................... SKIPPED
[INFO] Brooklyn Database Software Entities ................ SKIPPED
[INFO] Brooklyn Web App Software Entities ................. SKIPPED
[INFO] Brooklyn Messaging Software Entities ............... SKIPPED
[INFO] Brooklyn NoSQL Data Store Software Entities ........ SKIPPED
[INFO] Brooklyn Monitoring Software Entities .............. SKIPPED
[INFO] Brooklyn Web App Software Entities ................. SKIPPED
[INFO] Brooklyn QA ........................................ SKIPPED
[INFO] Brooklyn Examples Aggregator Project ............... SKIPPED
[INFO] Brooklyn Examples Aggregator Project - Webapps ..... SKIPPED
[INFO] hello-world-webapp Maven Webapp .................... SKIPPED
[INFO] hello-world-sql-webapp Maven Webapp ................ SKIPPED
[INFO] Brooklyn Simple Web Cluster Example ................ SKIPPED
[INFO] Brooklyn Library Karaf integration ................. SKIPPED
[INFO] Brooklyn Library Catalog ........................... SKIPPED
[INFO] Brooklyn Library Karaf Features .................... SKIPPED
[INFO] Brooklyn Client .................................... SKIPPED
[INFO] Brooklyn Client Command Line Interface ............. SKIPPED
[INFO] Brooklyn REST java Client .......................... SKIPPED
[INFO] Brooklyn Downstream Project Parent ................. SKIPPED
[INFO] Brooklyn Dist Root ................................. SKIPPED
[INFO] Brooklyn All Things ................................ SKIPPED
[INFO] Brooklyn Distribution .............................. SKIPPED
[INFO] Brooklyn Karaf Distribution Parent ................. SKIPPED
[INFO] Brooklyn Karaf Server Configuration ................ SKIPPED
[INFO] Brooklyn Dist Karaf Features ....................... SKIPPED
[INFO] Brooklyn Karaf Distribution ........................ SKIPPED
[INFO] Brooklyn Karaf pax-exam itest ...................... SKIPPED
[INFO] Brooklyn Vagrant Getting Started Environment ....... SKIPPED
[INFO] Brooklyn Quick-Start Project Archetype ............. SKIPPED
[INFO] Brooklyn Shared Package Files ...................... SKIPPED
[INFO] Brooklyn RPM Package ............................... SKIPPED
[INFO] Brooklyn DEB Package ............................... SKIPPED
[INFO] Brooklyn Root ...................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 05:37 min
[INFO] Finished at: 2018-07-27T13:30:02Z
[INFO] Final Memory: 95M/890M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on
project brooklyn-core: There are test failures.
[ERROR]
[ERROR] Please refer to /usr/build/brooklyn-server/core/target/surefire-reports
for the individual test results.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e
switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please
read the following articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :brooklyn-core
Build step 'Execute shell' marked build as failure
Recording test results
TestNG Reports Processing: START
Looking for TestNG results report in workspace using pattern:
**/testng-results.xml
Saving reports...
Processing
'/x1/jenkins/jenkins-home/jobs/brooklyn-master-build-docker/builds/558/testng/testng-results-1.xml'
Processing
'/x1/jenkins/jenkins-home/jobs/brooklyn-master-build-docker/builds/558/testng/testng-results-2.xml'
Processing
'/x1/jenkins/jenkins-home/jobs/brooklyn-master-build-docker/builds/558/testng/testng-results-3.xml'
Processing
'/x1/jenkins/jenkins-home/jobs/brooklyn-master-build-docker/builds/558/testng/testng-results-4.xml'
Processing
'/x1/jenkins/jenkins-home/jobs/brooklyn-master-build-docker/builds/558/testng/testng-results-5.xml'
Processing
'/x1/jenkins/jenkins-home/jobs/brooklyn-master-build-docker/builds/558/testng/testng-results.xml'
0.204848% of tests failed, which exceeded threshold of 0%. Marking build as
UNSTABLE
TestNG Reports Processing: FINISH