void reloadProgram(boolean checkRoot) {
		if (currentProgram == null) {
			// can happen when the SwingUpdateManager fires after the program has been closed
			return;
		}
		Listing listing = currentProgram.getListing();
		String[] treeNames = listing.getTreeNames();
		for (String element : treeNames) {
			ProgramDnDTree tree = getTree(element);
			if (tree != null) {
				reloadTree(tree, checkRoot);
			}
		}
	}
The program was restored from an Undo/Redo operation so reload it

@param checkRoot if true, only rebuild the tree if the root node is invalid; if false,
       force a rebuild of the tree
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/programtree/ProgramTreePlugin.java