-// if (pidPrefix == null)
-// throw new IllegalArgumentException("PID prefix must be set.");
-
-// headerPid = pidPrefix + "header";
-// footerPid = pidPrefix + "footer";
-// leadPanePid = pidPrefix + "leadPane";
-// adminLeadPanePid = pidPrefix + "adminLeadPane";
-// loginScreenPid = pidPrefix + "loginScreen";
+
+ long janitorPeriod = 12 * 60 * 60 * 1000;// 12h
+ janitorTimer.schedule(new TimerTask() {
+
+ @Override
+ public void run() {
+ refs: for (WeakReference<SwtAppUi> uiRef : managedUis.values()) {
+ SwtAppUi ui = uiRef.get();
+ if (ui == null)
+ continue refs;
+ ui.disposeIfTimedout();
+ }
+ if (log.isDebugEnabled())
+ log.debug(managedUis.size() + " UIs being managed by app " + appPid);
+ }
+ }, janitorPeriod, janitorPeriod);