void (final RestorableStateNode treeNode, final XDebuggerTreeState.NodeInfo nodeInfo) { if (nodeInfo != null) { if (!checkExtendedModified(treeNode) && !(Objects.equals(nodeInfo.getValue(), treeNode.getRawValue()))) { treeNode.markChanged(); } if (!myStopRestoringSelection && nodeInfo.isSelected() && mySelectionPath == null) { try { myInsideRestoring = true; myTree.addSelectionPath(treeNode.getPath()); } finally { myInsideRestoring = false; } } if (!(treeNode.isComputed() && treeNode.isLeaf())) { // do not restore computed leafs children restoreChildren((XDebuggerTreeNode)treeNode, nodeInfo); } else { myPendingNode2State.put(treeNode, nodeInfo); } } else { if (!checkExtendedModified(treeNode)) { treeNode.markChanged(); } if (mySelectionPath != null && !myStopRestoringSelection && pathsEqual(mySelectionPath, treeNode.getPath())) { myTree.addSelectionPath(treeNode.getPath()); } } }