void () { myFuture = ApplicationManager.getApplication().executeOnPooledThread(() -> { try { setValue(construct()); if (LOG.isDebugEnabled()) { LOG.debug("construct() terminated for " + this); } } catch (Throwable e) { LOG.error(e); onThrowable(); throw new RuntimeException(e); } if (LOG.isDebugEnabled()) { LOG.debug("invoking 'finished' action for " + this); } ApplicationManager.getApplication().invokeLater(() -> finished(), myModalityState); }); }