void (@NotNull AsyncPromise<? super TreePath> async, TreePath path) { if (LOG.isTraceEnabled()) LOG.debug("resolve path: ", path); if (path == null) { async.setError("path is null"); return; } Object object = path.getLastPathComponent(); if (object == null) { async.setError("path is wrong"); return; } accept(new TreeVisitor.ByTreePath<>(path, o -> o)) .onProcessed(result -> { if (result == null) { async.setError("path not found"); return; } async.setResult(result); }); }