void () { if (myDisposed) return; UIUtil.invokeLaterIfNeeded(() -> { if (myDisposed) return; myDisposed = true; onDispose(); destroyViewer(); applyRequestResult(MergeResult.CANCEL); if (myRequest != null) { onAssigned(myRequest, false); } }); }