Program: 9193
Project: 9193
Buggy source:
/** 
 * Highlights the given node in all structure views.  If the node represents code and as such is below the granularity visible in the view the parent is highlighted, along with the corresponding sourceline.
 */
private void navigationAction(IProgramElement node,boolean recordHistory){
  if (node == null)   return;
  Ajde.getDefault().logEvent("String_Node_Str" + node + "String_Node_Str"+ recordHistory);
  if (recordHistory)   historyModel.navigateToNode(node);
  if (defaultFileView != null && node.getSourceLocation() != null) {
    String newFilePath=node.getSourceLocation().getSourceFile().getAbsolutePath();
    if (defaultFileView.getSourceFile() != null && !defaultFileView.getSourceFile().equals(newFilePath)) {
      defaultFileView.setSourceFile(newFilePath);
      treeViewBuilder.buildView(defaultFileView,AsmManager.getDefault().getHierarchy());
    }
  }
  for (Iterator it=structureViews.iterator(); it.hasNext(); ) {
    StructureView view=(StructureView)it.next();
    if (!(view instanceof GlobalStructureView) || !recordHistory || defaultFileView == null) {
      if (node.getKind().equals(IProgramElement.Kind.CODE)) {
        IProgramElement parentNode=(IProgramElement)node.getParent();
        if (parentNode != null) {
          IStructureViewNode currNode=view.findCorrespondingViewNode(parentNode);
          int lineOffset=node.getSourceLocation().getLine() - parentNode.getSourceLocation().getLine();
          if (currNode != null)           view.setActiveNode(currNode,lineOffset);
        }
      }
 else {
        IStructureViewNode currNode=view.findCorrespondingViewNode(node);
        if (currNode != null)         view.setActiveNode(currNode);
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * Highlights the given node in all structure views.  If the node represents code and as such is below the granularity visible in the view the parent is highlighted, along with the corresponding sourceline.
 */
private void navigationAction(IProgramElement node,boolean recordHistory){
  if (node == null)   return;
  Ajde.getDefault().logEvent("String_Node_Str" + node + "String_Node_Str"+ recordHistory);
  if (recordHistory)   historyModel.navigateToNode(node);
  if (defaultFileView != null && node.getSourceLocation() != null) {
    String newFilePath=node.getSourceLocation().getSourceFile().getAbsolutePath();
    if (defaultFileView.getSourceFile() != null && !defaultFileView.getSourceFile().equals(newFilePath)) {
      defaultFileView.setSourceFile(newFilePath);
      treeViewBuilder.buildView(defaultFileView,AsmManager.getDefault().getHierarchy());
    }
  }
  for (Iterator it=structureViews.iterator(); it.hasNext(); ) {
    StructureView view=(StructureView)it.next();
    if (!(view instanceof GlobalStructureView) || !recordHistory || defaultFileView == null) {
      if (node.getKind().equals(IProgramElement.Kind.CODE)) {
        IProgramElement parentNode=node.getParent();
        if (parentNode != null) {
          IStructureViewNode currNode=view.findCorrespondingViewNode(parentNode);
          int lineOffset=node.getSourceLocation().getLine() - parentNode.getSourceLocation().getLine();
          if (currNode != null)           view.setActiveNode(currNode,lineOffset);
        }
      }
 else {
        IStructureViewNode currNode=view.findCorrespondingViewNode(node);
        if (currNode != null)         view.setActiveNode(currNode);
      }
    }
  }
}