This is an automated email from the ASF dual-hosted git repository. heneveld pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git
commit 0bcb387de010a29a4b5d3aaf76caef79c5febeb8 Author: Alex Heneveld <[email protected]> AuthorDate: Thu Aug 11 14:42:58 2022 +0100 stronger destroy semantics used in most places, esp in tests --- .../java/org/apache/brooklyn/camp/brooklyn/ConfigYamlTest.java | 2 +- .../brooklyn/camp/brooklyn/DynamicMultiGroupYamlRebindTest.java | 4 ++-- .../org/apache/brooklyn/camp/brooklyn/WindowsYamlLiveTest.java | 2 +- .../brooklyn/camp/brooklyn/catalog/CatalogMakeOsgiBundleTest.java | 2 +- core/src/main/java/org/apache/brooklyn/core/entity/Entities.java | 7 +++++-- .../apache/brooklyn/core/mgmt/internal/BrooklynShutdownHooks.java | 4 ++-- .../java/org/apache/brooklyn/core/effector/EffectorTaskTest.java | 2 +- .../brooklyn/core/mgmt/internal/EntityExecutionManagerTest.java | 4 ++-- .../core/mgmt/persist/BrooklynMementoPersisterTestFixture.java | 4 ++-- .../apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java | 2 +- .../brooklyn/policy/autoscaling/AutoScalerPolicyPoolSizeTest.java | 2 +- .../org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java | 2 +- .../java/org/apache/brooklyn/rest/resources/ActivityRestTest.java | 2 +- .../org/apache/brooklyn/rest/resources/EffectorResourceTest.java | 2 +- .../brooklyn/entity/machine/pool/AbstractServerPoolTest.java | 2 +- .../base/SoftwareProcessStopsDuringStartJcloudsLiveTest.java | 6 +++--- .../base/VanillaWindowsProcessWinrmExitStatusLiveTest.java | 2 +- .../software/base/VanillaWindowsProcessWinrmStreamsLiveTest.java | 4 ++-- .../base/test/qa/performance/ScalabilityPerformanceTest.java | 2 +- 19 files changed, 30 insertions(+), 27 deletions(-) diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ConfigYamlTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ConfigYamlTest.java index 9ede4a14fa..fcbccfdacd 100644 --- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ConfigYamlTest.java +++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ConfigYamlTest.java @@ -137,7 +137,7 @@ public class ConfigYamlTest extends AbstractYamlTest { // error, loop wasn't interrupted or detected LOG.warn("Timeout elapsed, destroying items; usage: "+ ((LocalManagementContext)mgmt()).getGarbageCollector().getUsageString()); - Entities.destroy(app); + Entities.destroy(app, true); } catch (RuntimeInterruptedException e) { // expected on normal execution; clear the interrupted flag to prevent ugly further warnings being logged Thread.interrupted(); diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/DynamicMultiGroupYamlRebindTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/DynamicMultiGroupYamlRebindTest.java index 2e0026921d..35c7762aa7 100644 --- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/DynamicMultiGroupYamlRebindTest.java +++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/DynamicMultiGroupYamlRebindTest.java @@ -56,7 +56,7 @@ public class DynamicMultiGroupYamlRebindTest extends AbstractYamlRebindTest { Enricher enricher1 = app.enrichers().iterator().next(); // Destroy application before first rebind. - Entities.destroy(app); + Entities.destroy(app, true); // check that a subsequent change doesn't cause it to re-create mgmt().getRebindManager().getChangeListener().onChanged(enricher1); @@ -100,7 +100,7 @@ public class DynamicMultiGroupYamlRebindTest extends AbstractYamlRebindTest { Assert.assertEquals(state.getEntities().size(), 10); // Destroy application after first rebind. - Entities.destroy(appRebind); + Entities.destroy(appRebind, true); // Rebind, expect no apps. rebind(RebindOptions.create().terminateOrigManagementContext(true)); diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/WindowsYamlLiveTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/WindowsYamlLiveTest.java index a84822a046..79943652ba 100644 --- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/WindowsYamlLiveTest.java +++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/WindowsYamlLiveTest.java @@ -134,7 +134,7 @@ public class WindowsYamlLiveTest extends AbstractWindowsYamlTest { @Override public void tearDown() { try { - if (app != null) Entities.destroy(app); + if (app != null) Entities.destroy(app, true); } catch (Throwable t) { log.error("Caught exception in tearDown method", t); } finally { diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogMakeOsgiBundleTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogMakeOsgiBundleTest.java index f2bd70944c..122c4a088d 100644 --- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogMakeOsgiBundleTest.java +++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogMakeOsgiBundleTest.java @@ -82,7 +82,7 @@ public class CatalogMakeOsgiBundleTest extends AbstractYamlTest { @AfterMethod(alwaysRun = true) public void cleanUpButKeepMgmt() throws Exception { for (Application app: MutableList.copyOf(mgmt().getApplications())) { - Entities.destroy(app); + Entities.destroy(app, true); } for (Bundle b: bundlesToRemove) { ((ManagementContextInternal)mgmt()).getOsgiManager().get().uninstallUploadedBundle( diff --git a/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java b/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java index a0a36ef8af..5ace40d008 100644 --- a/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java +++ b/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java @@ -721,8 +721,11 @@ public class Entities { /** Same as {@link #destroy(Entity)} but catching all errors. */ public static void destroyCatching(Entity entity) { + destroyCatching(entity, false); + } + public static void destroyCatching(Entity entity, boolean unmanageOnErrors) { try { - destroy(entity); + destroy(entity, unmanageOnErrors); } catch (Exception e) { log.warn("ERROR destroying "+entity+" (ignoring): "+e, e); Exceptions.propagateIfFatal(e); @@ -777,7 +780,7 @@ public class Entities { public void run() { log.debug("destroying app "+app+" (managed? "+isManaged(app)+"; mgmt is "+mgmt+")"); try { - destroy(app); + destroy(app, true); log.debug("destroyed app "+app+"; mgmt now "+mgmt); } catch (Exception e) { log.warn("problems destroying app "+app+" (mgmt now "+mgmt+", will rethrow at least one exception): "+e); diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BrooklynShutdownHooks.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BrooklynShutdownHooks.java index 2e4e0c63e7..eeb3c67821 100644 --- a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BrooklynShutdownHooks.java +++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BrooklynShutdownHooks.java @@ -78,7 +78,7 @@ public class BrooklynShutdownHooks { semaphore.release(); try { log.warn("Call to invokeStopOnShutdown for "+entity+" while system already shutting down; invoking stop now and throwing exception"); - Entities.destroy(entity); + Entities.destroy(entity, false); throw new IllegalStateException("Call to invokeStopOnShutdown for "+entity+" while system already shutting down"); } catch (Exception e) { throw new IllegalStateException("Call to invokeStopOnShutdown for "+entity+" while system already shutting down, had error: "+e, e); @@ -229,7 +229,7 @@ public class BrooklynShutdownHooks { final Entity entity = entityToStop; if (!Entities.isManaged(entity)) continue; Task<Object> t = Tasks.builder().dynamic(false).displayName("destroying "+entity).body(new Runnable() { - @Override public void run() { Entities.destroy(entity); } + @Override public void run() { Entities.destroy(entity, false); } }).build(); stops.add( ((EntityInternal)entity).getExecutionContext().submit(t) ); } diff --git a/core/src/test/java/org/apache/brooklyn/core/effector/EffectorTaskTest.java b/core/src/test/java/org/apache/brooklyn/core/effector/EffectorTaskTest.java index faa1fad67a..db83f0d6e6 100644 --- a/core/src/test/java/org/apache/brooklyn/core/effector/EffectorTaskTest.java +++ b/core/src/test/java/org/apache/brooklyn/core/effector/EffectorTaskTest.java @@ -435,7 +435,7 @@ public class EffectorTaskTest extends BrooklynAppUnitTestSupport { // Execution completed in the child's ExecutionContext, but still queued as a secondary. // Destroy the child entity so that no subsequent tasks can be executed in its context. - Entities.destroy(child); + Entities.destroy(child, true); } finally { // Let STALL complete synchronized(lock) { diff --git a/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/EntityExecutionManagerTest.java b/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/EntityExecutionManagerTest.java index 2fe243272b..5465e49bf3 100644 --- a/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/EntityExecutionManagerTest.java +++ b/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/EntityExecutionManagerTest.java @@ -364,7 +364,7 @@ public class EntityExecutionManagerTest extends BrooklynAppUnitTestSupport { Set<Object> tags = app.getManagementContext().getExecutionManager().getTaskTags(); assertTrue(tags.contains(BrooklynTaskTags.tagForContextEntity(e)), "tags="+tags); - Entities.destroy(e); + Entities.destroy(e, true); forceGc(); Asserts.succeedsEventually(() -> { @@ -392,7 +392,7 @@ public class EntityExecutionManagerTest extends BrooklynAppUnitTestSupport { TestEntity entity = app.createAndManageChild(EntitySpec.create(TestEntity.class)); entity.sensors().set(TestEntity.NAME, "bob"); entity.invoke(TestEntity.MY_EFFECTOR, ImmutableMap.<String,Object>of()).get(); - Entities.destroy(entity); + Entities.destroy(entity, true); Time.sleep(Duration.ONE_SECOND); forceGc(); Collection<Task<?>> t2 = em.getAllTasks(); diff --git a/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/BrooklynMementoPersisterTestFixture.java b/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/BrooklynMementoPersisterTestFixture.java index 6f63bab005..51f00a1232 100644 --- a/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/BrooklynMementoPersisterTestFixture.java +++ b/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/BrooklynMementoPersisterTestFixture.java @@ -133,7 +133,7 @@ public abstract class BrooklynMementoPersisterTestFixture { @Test public void testDeleteAndLoadMemento() throws Exception { - Entities.destroy(entity); + Entities.destroy(entity, true); BrooklynMemento reloadedMemento = loadMemento(); @@ -142,7 +142,7 @@ public abstract class BrooklynMementoPersisterTestFixture { assertEquals(Iterables.getOnlyElement(reloadedMemento.getLocationIds()), location.getId()); // Destroying the app should also unmanage its owned location, and adjuncts - Entities.destroy(app); + Entities.destroy(app, true); reloadedMemento = loadMemento(); assertFalse(Iterables.contains(reloadedMemento.getEntityIds(), entity.getId())); diff --git a/launcher/src/test/java/org/apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java b/launcher/src/test/java/org/apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java index 96aef9b37e..fda84338cd 100644 --- a/launcher/src/test/java/org/apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java +++ b/launcher/src/test/java/org/apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java @@ -149,7 +149,7 @@ public abstract class AbstractBlueprintTest { for (Application app: mgmt.getApplications()) { LOG.debug("destroying app "+app+" (managed? "+Entities.isManaged(app)+"; mgmt is "+mgmt+")"); try { - Entities.destroy(app); + Entities.destroy(app, true); LOG.debug("destroyed app "+app+"; mgmt now "+mgmt); } catch (Exception e) { LOG.error("problems destroying app "+app, e); diff --git a/policy/src/test/java/org/apache/brooklyn/policy/autoscaling/AutoScalerPolicyPoolSizeTest.java b/policy/src/test/java/org/apache/brooklyn/policy/autoscaling/AutoScalerPolicyPoolSizeTest.java index 16325d2244..222877eed6 100644 --- a/policy/src/test/java/org/apache/brooklyn/policy/autoscaling/AutoScalerPolicyPoolSizeTest.java +++ b/policy/src/test/java/org/apache/brooklyn/policy/autoscaling/AutoScalerPolicyPoolSizeTest.java @@ -93,7 +93,7 @@ public class AutoScalerPolicyPoolSizeTest extends BrooklynAppUnitTestSupport { EntityAsserts.assertAttributeEqualsEventually(cluster, TestCluster.GROUP_SIZE, CLUSTER_INIITIAL_SIZE); // Simulate user expunging the entities manually for (int i = 0; i < CLUSTER_MAX_SIZE - CLUSTER_MIN_SIZE; i++) { - Entities.destroyCatching(cluster.getMembers().iterator().next()); + Entities.destroyCatching(cluster.getMembers().iterator().next(), true); } EntityAsserts.assertAttributeEqualsEventually(cluster, TestSizeRecordingCluster.SIZE_HISTORY_RECORD_COUNT, 2); Assert.assertEquals((int)cluster.getSizeHistory().get(0), CLUSTER_INIITIAL_SIZE); diff --git a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java index 1ecf2d5bc0..2e30ee2791 100644 --- a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java +++ b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java @@ -481,7 +481,7 @@ public class BrooklynRestResourceUtils { @Override public void run() { if (release) - Entities.destroy(entity); + Entities.destroy(entity, false); else mgmt.getEntityManager().unmanage(entity); } diff --git a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ActivityRestTest.java b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ActivityRestTest.java index 6ab67a114f..d14e326067 100644 --- a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ActivityRestTest.java +++ b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ActivityRestTest.java @@ -103,7 +103,7 @@ Task[eatand]@J90TKfIX: Waiting on Task[eat-sleep-rave-repeat]@QPa5o4kF @SuppressWarnings("deprecation") protected void initEntity(int seed) { if (entity != null && Entities.isManaged(entity)) { - Entities.destroy(entity.getApplication()); + Entities.destroy(entity.getApplication(), true); } CreationResult<BasicApplication, Void> app = EntityManagementUtils.createStarting(getManagementContext(), diff --git a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/EffectorResourceTest.java b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/EffectorResourceTest.java index 957f631865..a8d3cdf680 100644 --- a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/EffectorResourceTest.java +++ b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/EffectorResourceTest.java @@ -63,7 +63,7 @@ public class EffectorResourceTest extends BrooklynRestResourceTest { @Override public void destroyMethod() throws Exception { try { - if (app != null) Entities.destroy(app); + if (app != null) Entities.destroy(app, true); } finally { super.destroyMethod(); } diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/machine/pool/AbstractServerPoolTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/machine/pool/AbstractServerPoolTest.java index 0da5a2e325..70fa0c5e0c 100644 --- a/software/base/src/test/java/org/apache/brooklyn/entity/machine/pool/AbstractServerPoolTest.java +++ b/software/base/src/test/java/org/apache/brooklyn/entity/machine/pool/AbstractServerPoolTest.java @@ -76,7 +76,7 @@ public abstract class AbstractServerPoolTest { public void tearDown() throws Exception { // Kills the apps before terminating the pool for (TestApplication app : createdApps) { - Entities.destroy(app); + Entities.destroy(app, true); } if (mgmt != null) { Entities.destroyAll(mgmt); diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/SoftwareProcessStopsDuringStartJcloudsLiveTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/SoftwareProcessStopsDuringStartJcloudsLiveTest.java index 7839de26bd..36a3e5fef3 100644 --- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/SoftwareProcessStopsDuringStartJcloudsLiveTest.java +++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/SoftwareProcessStopsDuringStartJcloudsLiveTest.java @@ -148,7 +148,7 @@ public class SoftwareProcessStopsDuringStartJcloudsLiveTest extends BrooklynAppL executeInLimitedTime(new Callable<Void>() { @Override public Void call() { - Entities.destroy(app); + Entities.destroy(app, true); return null; } }, Asserts.DEFAULT_LONG_TIMEOUT.toMilliseconds(), TimeUnit.MILLISECONDS); @@ -169,7 +169,7 @@ public class SoftwareProcessStopsDuringStartJcloudsLiveTest extends BrooklynAppL * </ul> */ @Test(groups = {"Live"}) - public void testJclousMachineIsExpungedWhenStoppedDuringStart() throws Exception { + public void testJcloudsMachineIsExpungedWhenStoppedDuringStart() throws Exception { Map<String,?> allFlags = ImmutableMap.<String,Object>builder() .put("tags", ImmutableList.of(getClass().getName())) .put(JcloudsLocation.IMAGE_ID.getName(), IMAGE_ID) @@ -193,7 +193,7 @@ public class SoftwareProcessStopsDuringStartJcloudsLiveTest extends BrooklynAppL EntityAsserts.assertAttributeEqualsEventually(entity, AttributesInternal.INTERNAL_PROVISIONING_TASK_STATE, AttributesInternal.ProvisioningTaskState.RUNNING); Stopwatch stopwatch = Stopwatch.createStarted(); - Entities.destroyCatching(app); + Entities.destroyCatching(app, true); LOG.info("Time for expunging: {}", Duration.of(stopwatch)); NodeMetadata nodeMetadata = Iterables.getFirst(((AWSEC2ComputeService) jcloudsLocation.getComputeService()).listNodesDetailsMatching(new Predicate<ComputeMetadata>() { diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaWindowsProcessWinrmExitStatusLiveTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaWindowsProcessWinrmExitStatusLiveTest.java index b41044935f..fa38212736 100644 --- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaWindowsProcessWinrmExitStatusLiveTest.java +++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaWindowsProcessWinrmExitStatusLiveTest.java @@ -89,7 +89,7 @@ public class VanillaWindowsProcessWinrmExitStatusLiveTest { public void tearDown() throws Exception { try { try { - if (app != null) Entities.destroy(app); + if (app != null) Entities.destroy(app, true); } catch (Throwable t) { LOG.error("Caught exception in tearDown method", t); } diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaWindowsProcessWinrmStreamsLiveTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaWindowsProcessWinrmStreamsLiveTest.java index ec435b31a6..e1c6f9f9e9 100644 --- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaWindowsProcessWinrmStreamsLiveTest.java +++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaWindowsProcessWinrmStreamsLiveTest.java @@ -49,7 +49,7 @@ public class VanillaWindowsProcessWinrmStreamsLiveTest extends AbstractSoftwareP @BeforeClass(alwaysRun = true) public void setUpClass() throws Exception { super.setUp(); - if (app != null) Entities.destroy(app); + if (app != null) Entities.destroy(app, true); location = WindowsTestFixture.setUpWindowsLocation(mgmt); machine = location.obtain(ImmutableMap.of()); @@ -76,7 +76,7 @@ public class VanillaWindowsProcessWinrmStreamsLiveTest extends AbstractSoftwareP @Override public void tearDown() throws Exception { try { - if (app != null) Entities.destroy(app); + if (app != null) Entities.destroy(app, true); } catch (Throwable t) { LOG.error("Caught exception in tearDown method", t); } finally { diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/qa/performance/ScalabilityPerformanceTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/qa/performance/ScalabilityPerformanceTest.java index a3b064e7b7..3b6e0033b4 100644 --- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/qa/performance/ScalabilityPerformanceTest.java +++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/qa/performance/ScalabilityPerformanceTest.java @@ -237,7 +237,7 @@ public class ScalabilityPerformanceTest extends AbstractPerformanceTest { ManagementContext mgmt = app.getManagementContext(); LOG.debug("destroying app "+app+" (managed? "+Entities.isManaged(app)+"; mgmt is "+mgmt+")"); try { - Entities.destroy(app); + Entities.destroy(app, true); LOG.debug("destroyed app "+app+"; mgmt now "+mgmt); } catch (Exception e) { LOG.warn("problems destroying app "+app+" (mgmt now "+mgmt+", will rethrow at least one exception): "+e);
