Program: 190190
Project: 190190
Buggy source:
public void readXML(Element textModelElement){
  Element showNodeE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  showNodeLabels=Boolean.parseBoolean(showNodeE.getAttribute("String_Node_Str"));
  Element showEdgeE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  showEdgeLabels=Boolean.parseBoolean(showEdgeE.getAttribute("String_Node_Str"));
  Element selectedOnlyE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  selectedOnly=Boolean.parseBoolean(selectedOnlyE.getAttribute("String_Node_Str"));
  Element nodeFontE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  String nodeFontName=nodeFontE.getAttribute("String_Node_Str");
  int nodeFontSize=Integer.parseInt(nodeFontE.getAttribute("String_Node_Str"));
  int nodeFontStyle=Integer.parseInt(nodeFontE.getAttribute("String_Node_Str"));
  nodeFont=new Font(nodeFontName,nodeFontStyle,nodeFontSize);
  Element edgeFontE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  String edgeFontName=edgeFontE.getAttribute("String_Node_Str");
  int edgeFontSize=Integer.parseInt(edgeFontE.getAttribute("String_Node_Str"));
  int edgeFontStyle=Integer.parseInt(edgeFontE.getAttribute("String_Node_Str"));
  edgeFont=new Font(edgeFontName,edgeFontStyle,edgeFontSize);
  Element nodeColorE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  nodeColor=ColorUtils.decode(nodeColorE.getAttribute("String_Node_Str")).getRGBComponents(null);
  Element edgeColorE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  edgeColor=ColorUtils.decode(edgeColorE.getAttribute("String_Node_Str")).getRGBComponents(null);
  Element nodeSizeFactorE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  nodeSizeFactor=Float.parseFloat(nodeSizeFactorE.getTextContent());
  Element edgeSizeFactorE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  edgeSizeFactor=Float.parseFloat(edgeSizeFactorE.getTextContent());
  Element colorModeE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  String colorModeClass=colorModeE.getAttribute("String_Node_Str");
  if (colorModeClass.equals("String_Node_Str")) {
    colorMode=VizController.getInstance().getTextManager().getColorModes()[0];
  }
 else   if (colorModeClass.equals("String_Node_Str")) {
    colorMode=VizController.getInstance().getTextManager().getColorModes()[1];
  }
  Element sizeModeE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  String sizeModeClass=sizeModeE.getAttribute("String_Node_Str");
  if (sizeModeClass.equals("String_Node_Str")) {
    sizeMode=VizController.getInstance().getTextManager().getSizeModes()[0];
  }
 else   if (colorModeClass.equals("String_Node_Str")) {
    sizeMode=VizController.getInstance().getTextManager().getSizeModes()[2];
  }
 else   if (colorModeClass.equals("String_Node_Str")) {
    sizeMode=VizController.getInstance().getTextManager().getSizeModes()[1];
  }
  AttributeController attributeController=Lookup.getDefault().lookup(AttributeController.class);
  if (attributeController != null && attributeController.getModel() != null) {
    AttributeModel attributeModel=attributeController.getModel();
    List<AttributeColumn> nodeCols=new ArrayList<AttributeColumn>();
    List<AttributeColumn> edgeCols=new ArrayList<AttributeColumn>();
    Element nodeColumnsE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
    NodeList nodeColumnList=nodeColumnsE.getElementsByTagName("String_Node_Str");
    for (int i=0; i < nodeColumnList.getLength(); i++) {
      if (nodeColumnList.item(i).getNodeType() == Node.ELEMENT_NODE) {
        Element nodeColumnE=(Element)nodeColumnList.item(i);
        String id=nodeColumnE.getAttribute("String_Node_Str");
        AttributeColumn col=attributeModel.getNodeTable().getColumn(id);
        if (col != null) {
          nodeCols.add(col);
        }
      }
    }
    Element edgeColumnsE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
    NodeList edgeColumnList=edgeColumnsE.getElementsByTagName("String_Node_Str");
    for (int i=0; i < edgeColumnList.getLength(); i++) {
      if (edgeColumnList.item(i).getNodeType() == Node.ELEMENT_NODE) {
        Element edgeColumnE=(Element)edgeColumnList.item(i);
        String id=edgeColumnE.getAttribute("String_Node_Str");
        AttributeColumn col=attributeModel.getEdgeTable().getColumn(id);
        if (col != null) {
          edgeCols.add(col);
        }
      }
    }
    nodeTextColumns=nodeCols.toArray(new AttributeColumn[0]);
    edgeTextColumns=edgeCols.toArray(new AttributeColumn[0]);
  }
}

Fixed version (ground truth):
public void readXML(Element textModelElement){
  Element showNodeE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  showNodeLabels=Boolean.parseBoolean(showNodeE.getAttribute("String_Node_Str"));
  Element showEdgeE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  showEdgeLabels=Boolean.parseBoolean(showEdgeE.getAttribute("String_Node_Str"));
  Element selectedOnlyE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  selectedOnly=Boolean.parseBoolean(selectedOnlyE.getAttribute("String_Node_Str"));
  Element nodeFontE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  String nodeFontName=nodeFontE.getAttribute("String_Node_Str");
  int nodeFontSize=Integer.parseInt(nodeFontE.getAttribute("String_Node_Str"));
  int nodeFontStyle=Integer.parseInt(nodeFontE.getAttribute("String_Node_Str"));
  nodeFont=new Font(nodeFontName,nodeFontStyle,nodeFontSize);
  Element edgeFontE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  String edgeFontName=edgeFontE.getAttribute("String_Node_Str");
  int edgeFontSize=Integer.parseInt(edgeFontE.getAttribute("String_Node_Str"));
  int edgeFontStyle=Integer.parseInt(edgeFontE.getAttribute("String_Node_Str"));
  edgeFont=new Font(edgeFontName,edgeFontStyle,edgeFontSize);
  Element nodeColorE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  nodeColor=ColorUtils.decode(nodeColorE.getAttribute("String_Node_Str")).getRGBComponents(null);
  Element edgeColorE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  edgeColor=ColorUtils.decode(edgeColorE.getAttribute("String_Node_Str")).getRGBComponents(null);
  Element nodeSizeFactorE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  nodeSizeFactor=Float.parseFloat(nodeSizeFactorE.getTextContent());
  Element edgeSizeFactorE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  edgeSizeFactor=Float.parseFloat(edgeSizeFactorE.getTextContent());
  Element colorModeE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  String colorModeClass=colorModeE.getAttribute("String_Node_Str");
  if (colorModeClass.equals("String_Node_Str")) {
    colorMode=VizController.getInstance().getTextManager().getColorModes()[0];
  }
 else   if (colorModeClass.equals("String_Node_Str")) {
    colorMode=VizController.getInstance().getTextManager().getColorModes()[1];
  }
  Element sizeModeE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
  String sizeModeClass=sizeModeE.getAttribute("String_Node_Str");
  if (sizeModeClass.equals("String_Node_Str")) {
    sizeMode=VizController.getInstance().getTextManager().getSizeModes()[0];
  }
 else   if (sizeModeClass.equals("String_Node_Str")) {
    sizeMode=VizController.getInstance().getTextManager().getSizeModes()[2];
  }
 else   if (sizeModeClass.equals("String_Node_Str")) {
    sizeMode=VizController.getInstance().getTextManager().getSizeModes()[1];
  }
  AttributeController attributeController=Lookup.getDefault().lookup(AttributeController.class);
  if (attributeController != null && attributeController.getModel() != null) {
    AttributeModel attributeModel=attributeController.getModel();
    List<AttributeColumn> nodeCols=new ArrayList<AttributeColumn>();
    List<AttributeColumn> edgeCols=new ArrayList<AttributeColumn>();
    Element nodeColumnsE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
    NodeList nodeColumnList=nodeColumnsE.getElementsByTagName("String_Node_Str");
    for (int i=0; i < nodeColumnList.getLength(); i++) {
      if (nodeColumnList.item(i).getNodeType() == Node.ELEMENT_NODE) {
        Element nodeColumnE=(Element)nodeColumnList.item(i);
        String id=nodeColumnE.getAttribute("String_Node_Str");
        AttributeColumn col=attributeModel.getNodeTable().getColumn(id);
        if (col != null) {
          nodeCols.add(col);
        }
      }
    }
    Element edgeColumnsE=(Element)textModelElement.getElementsByTagName("String_Node_Str").item(0);
    NodeList edgeColumnList=edgeColumnsE.getElementsByTagName("String_Node_Str");
    for (int i=0; i < edgeColumnList.getLength(); i++) {
      if (edgeColumnList.item(i).getNodeType() == Node.ELEMENT_NODE) {
        Element edgeColumnE=(Element)edgeColumnList.item(i);
        String id=edgeColumnE.getAttribute("String_Node_Str");
        AttributeColumn col=attributeModel.getEdgeTable().getColumn(id);
        if (col != null) {
          edgeCols.add(col);
        }
      }
    }
    nodeTextColumns=nodeCols.toArray(new AttributeColumn[0]);
    edgeTextColumns=edgeCols.toArray(new AttributeColumn[0]);
  }
}