Janitor thread per instance unstable github/unstable
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 8 May 2024 07:00:57 +0000 (09:00 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 8 May 2024 07:00:57 +0000 (09:00 +0200)
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 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
        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");
 
                if (log.isDebugEnabled())
                        log.info("Argeo Suite App stopped");
 
+               // clean janitor timer so that th thread is not kept
+               janitorTimer.cancel();
        }
 
        @Override
        }
 
        @Override