if ( bugTree == null ) { return; }
    private void synchBugInstance() {        // Get current bug instance        BugInstance selected = getCurrentBugInstance();        if (selected == null)            return;                // If the details window is minimized, then the user can't see        // it and there is no point in updating it.        if (!viewBugDetailsItem.isSelected())            return;                // Get the current source line annotation.        // If the current leaf selected is not a source line annotation,        // use the default source line annotation from the current bug instance        // (if any).        JTree bugTree = getCurrentBugTree();        SourceLineAnnotation srcLine = null;        TreePath selPath = bugTree.getSelectionPath();        if (selPath != null) {            Object leaf = ((DefaultMutableTreeNode)selPath.getLastPathComponent()).getUserObject();            if (leaf instanceof SourceLineAnnotation)                srcLine = (SourceLineAnnotation) leaf;            else                srcLine = selected.getPrimarySourceLineAnnotation();        }                // Show source code.        if (srcLine == null || srcLine != currentSourceLineAnnotation) {            Project project = getCurrentProject();            AnalysisRun analysisRun = getCurrentAnalysisRun();            if (project == null) throw new IllegalStateException("null project!");            if (analysisRun == null) throw new IllegalStateException("null analysis run!");            try {                boolean success = viewSource(project, analysisRun, srcLine);                sourceTextArea.setEnabled(success);                if (!success)                    sourceTextArea.setText("No source line information for this bug");            } catch (IOException e) {                sourceTextArea.setText("Could not find source: " + e.getMessage());                logger.logMessage(ConsoleLogger.WARNING, e.getMessage());            }                        currentSourceLineAnnotation = srcLine;        }                // Show bug info.        showBugInfo(selected);                // Synch annotation text.        synchBugAnnotation(selected);                // Now the bug details are up to date.        currentBugInstance = selected;    }