- Iterator<WeakReference<SwtAppUi>> uiRefs = managedUis.values().iterator();
- refs: while (uiRefs.hasNext()) {
- WeakReference<SwtAppUi> uiRef = uiRefs.next();
- SwtAppUi ui = uiRef.get();
- if (ui == null) {
- if (log.isTraceEnabled())
- log.warn("Unreferenced UI in " + appPid + ", removing it");
- uiRefs.remove();
- continue refs;
- }
- if (!ui.isDisposed() && !ui.getDisplay().isDisposed()) {
- ui.getDisplay().asyncExec(() -> ui.disposeIfTimedout());
+ try {
+ Iterator<WeakReference<SwtAppUi>> uiRefs = managedUis.values().iterator();
+ refs: while (uiRefs.hasNext()) {
+ WeakReference<SwtAppUi> uiRef = uiRefs.next();
+ SwtAppUi ui = uiRef.get();
+ if (ui == null) {
+ if (log.isTraceEnabled())
+ log.warn("Unreferenced UI in " + appPid + ", removing it");
+ uiRefs.remove();
+ continue refs;
+ }
+ if (!ui.isDisposed() && !ui.getDisplay().isDisposed()) {
+ ui.getDisplay().asyncExec(() -> {
+ ui.disposeIfTimedout();
+ });
+ ui.getDisplay().wake();
+ }