From 6dfb879660328903b6c8f9e4a679b24393893606 Mon Sep 17 00:00:00 2001 From: Aled Sage Date: Tue, 25 Apr 2017 15:18:22 +0100 Subject: [PATCH] Fix memory leak in BrooklynPersistenceUtils --- .../mgmt/persist/BrooklynPersistenceUtils.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynPersistenceUtils.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynPersistenceUtils.java index 62030c8be5..1219e10bbe 100644 --- a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynPersistenceUtils.java +++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynPersistenceUtils.java @@ -106,9 +106,13 @@ public static void writeMemento(ManagementContext managementContext, BrooklynMem destinationObjectStore, ((ManagementContextInternal)managementContext).getBrooklynProperties(), managementContext.getCatalogClassLoader()); - PersistenceExceptionHandler exceptionHandler = PersistenceExceptionHandlerImpl.builder().build(); - persister.enableWriteAccess(); - persister.checkpoint(memento, exceptionHandler); + try { + PersistenceExceptionHandler exceptionHandler = PersistenceExceptionHandlerImpl.builder().build(); + persister.enableWriteAccess(); + persister.checkpoint(memento, exceptionHandler); + } finally { + persister.stop(true); + } } public static void writeManagerMemento(ManagementContext managementContext, ManagementPlaneSyncRecord optionalPlaneRecord, @@ -116,7 +120,11 @@ public static void writeManagerMemento(ManagementContext managementContext, Mana if (optionalPlaneRecord != null) { ManagementPlaneSyncRecordPersisterToObjectStore managementPersister = new ManagementPlaneSyncRecordPersisterToObjectStore( managementContext, destinationObjectStore, managementContext.getCatalogClassLoader()); - managementPersister.checkpoint(optionalPlaneRecord); + try { + managementPersister.checkpoint(optionalPlaneRecord); + } finally { + managementPersister.stop(); + } } }