void () { if (pass.isExpired()) { result.setError("expired"); return; } if (isRerunNeeded(pass)) { runDone(new TreeRunnable("AbstractTreeUi.maybeYield: rerun") { @Override public void perform() { if (!pass.isExpired()) { queueUpdate(getElementFor(node)); } } }); result.setError("requeue"); } else { try { //noinspection unchecked execute(processRunnable).processed((Promise)result); } catch (ProcessCanceledException e) { pass.expire(); cancelUpdate(); result.setError("rejected"); } } }