bugTreeModel.nodeStructureChanged(bugRootNode);
    private void populateAnalysisRunTreeModel(AnalysisRun analysisRun, String sortOrder) {        Cursor orig = this.getCursor();        this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));        DefaultTreeModel bugTreeModel = analysisRun.getTreeModel();        DefaultMutableTreeNode bugRootNode = (DefaultMutableTreeNode) bugTreeModel.getRoot();        // Delete all children from root node        bugRootNode.removeAllChildren();                // Sort the instances        TreeSet sortedCollection = new TreeSet(getBugInstanceComparator(sortOrder));        sortedCollection.addAll(analysisRun.getBugInstances());        // Add all instances as children of the root, in sorted order        Iterator i = sortedCollection.iterator();        while (i.hasNext()) {            BugInstance bugInstance = (BugInstance) i.next();            DefaultMutableTreeNode bugNode = new DefaultMutableTreeNode(bugInstance);            bugTreeModel.insertNodeInto(bugNode, bugRootNode, bugRootNode.getChildCount());                        // Insert annotations            Iterator j = bugInstance.annotationIterator();            while (j.hasNext()) {                BugAnnotation annotation = (BugAnnotation) j.next();                DefaultMutableTreeNode annotationNode = new DefaultMutableTreeNode(annotation);                bugTreeModel.insertNodeInto(annotationNode, bugNode,  bugNode.getChildCount());            }        }        analysisRun.setSortOrder(sortOrder);        this.setCursor(orig);    }