private void doRestoreNode( final RestorableStateNode treeNode, final XDebuggerTreeState.NodeInfo nodeInfo) { if (nodeInfo != null) { if (!checkExtendedModified(treeNode) && !(Comparing.equal(nodeInfo.getValue(), treeNode.getRawValue()))) { treeNode.markChanged(); } if (!myStopRestoringSelection && nodeInfo.isSelected()) { try { myInsideRestoring = true; myTree.addSelectionPath(treeNode.getPath()); } finally { myInsideRestoring = false; } } restoreChildren((XDebuggerTreeNode) treeNode, nodeInfo); } else if (!checkExtendedModified(treeNode)) { treeNode.markChanged(); } }