Janitor thread per instance
[gpl/argeo-suite.git] / swt / org.argeo.app.swt / src / org / argeo / app / swt / ux / SwtArgeoApp.java
index d123aa09c1821b447b76d948c8eebe53b8eaf1c0..851d686d54f75f03568e599ce3b6b95189cb059e 100644 (file)
@@ -95,7 +95,9 @@ public class SwtArgeoApp extends AbstractArgeoApp implements CmsEventSubscriber
 //     private CmsUserManager cmsUserManager;
 
        // TODO make more optimal or via CmsSession/CmsView
-       private static Timer janitorTimer = new Timer(true);
+       // It works if static, but there is no clean way to get rid of it, so we open
+       // one per app
+       private Timer janitorTimer = new Timer(true);
        private Map<String, WeakReference<SwtAppUi>> managedUis = new HashMap<>();
 
        // ACR
@@ -189,6 +191,8 @@ public class SwtArgeoApp extends AbstractArgeoApp implements CmsEventSubscriber
                if (log.isDebugEnabled())
                        log.info("Argeo Suite App stopped");
 
+               // clean janitor timer so that th thread is not kept
+               janitorTimer.cancel();
        }
 
        @Override