void reloadWithSelection(@Nullable Configurable toSelect) {
    myRoot.cleanUpCache();
    myQueuedConfigurable = null;
    myQueue.cancelAllUpdates();
    myConfigurableToNodeMap.clear();

    //remove expansion and selection (to avoid stuck old elements) before cleanup
    myTree.getSelectionModel().clearSelection();
    myTree.collapsePath(new TreePath(myTree.getModel().getRoot()));

    myModel.getTreeStructure().rebuild();
    myModel.getTreeStructure().refilter();
    myModel.invalidateAsync().thenRun(() -> {
      MyNode node = findNode(toSelect);
      if (node != null) {
        FilteringTreeStructure.FilteringNode filteringNode = myModel.getTreeStructure().getVisibleNodeFor(node);
        myModel.select(filteringNode, myTree, treePath -> {
        });
      }
    });
  }
void reloadWithSelection(@Nullable Configurable toSelect)