void () { if (row >= getTree().getRowCount()) return; TreePath path = getTree().getPathForRow(row); if (path != null) { NodeDescriptor<?> descriptor = getDescriptorFrom(path.getLastPathComponent()); if (descriptor != null) { DefaultMutableTreeNode node = (DefaultMutableTreeNode)path.getLastPathComponent(); maybeYield(() -> update(descriptor, false) .onSuccess(new TreeConsumer<>("AbstractTreeUi.updateRow: inner") { @Override public void perform() { updateRow(row + 1, pass); } }), pass, node); } } }