Repository: brooklyn-server
Updated Branches:
  refs/heads/master 547feec96 -> 022fb2fb3


Fix memory leak in BrooklynPersistenceUtils

Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/6dfb8796
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/6dfb8796
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/6dfb8796

Branch: refs/heads/master
Commit: 6dfb879660328903b6c8f9e4a679b24393893606
Parents: 547feec
Author: Aled Sage <[email protected]>
Authored: Tue Apr 25 15:18:22 2017 +0100
Committer: Aled Sage <[email protected]>
Committed: Tue Apr 25 15:18:22 2017 +0100

----------------------------------------------------------------------
 .../core/mgmt/persist/BrooklynPersistenceUtils.java | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/6dfb8796/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynPersistenceUtils.java
----------------------------------------------------------------------
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 62030c8..1219e10 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 class BrooklynPersistenceUtils {
             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 class BrooklynPersistenceUtils {
         if (optionalPlaneRecord != null) {
             ManagementPlaneSyncRecordPersisterToObjectStore 
managementPersister = new ManagementPlaneSyncRecordPersisterToObjectStore(
                     managementContext, destinationObjectStore, 
managementContext.getCatalogClassLoader());
-            managementPersister.checkpoint(optionalPlaneRecord);
+            try {
+                managementPersister.checkpoint(optionalPlaneRecord);
+            } finally {
+                managementPersister.stop();
+            }
         }
     }
 

Reply via email to