Program: 175226
Project: 175226
Buggy source:
public void parseProductXML(File productxml) throws TransformException {
  try {
    SAXBuilder builder=new SAXBuilder();
    doc=builder.build(productxml);
    Element atts=doc.getRootElement().getChild("String_Node_Str");
    setSatellite("String_Node_Str");
    setSensor("String_Node_Str");
    String pols="String_Node_Str";
    for (    Object o : atts.getChild("String_Node_Str").getChild("String_Node_Str").getChildren("String_Node_Str")) {
      Element elem=(Element)o;
      pols=pols + elem.getText() + "String_Node_Str";
    }
    pols.substring(0,pols.length() - 1);
    setPolarization(pols);
    setLookDirection(atts.getChild("String_Node_Str").getChild("String_Node_Str").getText());
    setMode(atts.getChild("String_Node_Str").getChild("String_Node_Str").getText());
    setProduct(atts.getChild("String_Node_Str").getChild("String_Node_Str").getText());
    setOrbitDirection(atts.getChild("String_Node_Str").getChild("String_Node_Str").getText());
    setMetaHeight(Integer.parseInt(atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText()));
    String w=atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText();
    setMetaWidth(Integer.parseInt(w));
    setRangeSpacing(Float.parseFloat(atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText()));
    setAzimuthSpacing(Float.parseFloat(atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText()));
    setNumberOfBytes(new Integer(atts.getChild("String_Node_Str").getChild("String_Node_Str").getText()) / 8);
    setENL(atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    setHeadingAngle(Double.parseDouble(atts.getChild("String_Node_Str").getChild("String_Node_Str").getText()));
    rangeTimeStart=Double.valueOf(atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    rangeTimeStop=Double.valueOf(atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    String time=atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText();
    setTimeStampStart(time.replaceAll("String_Node_Str","String_Node_Str"));
    time=atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText();
    setTimeStampStop(time.replaceAll("String_Node_Str","String_Node_Str"));
    atts=doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str");
    double xvelocity=Double.valueOf(atts.getChildText("String_Node_Str"));
    double yvelocity=Double.valueOf(atts.getChildText("String_Node_Str"));
    double zvelocity=Double.valueOf(atts.getChildText("String_Node_Str"));
    double satellite_speed=Math.sqrt(xvelocity * xvelocity + yvelocity * yvelocity + zvelocity * zvelocity);
    setSatelliteSpeed(satellite_speed);
    xposition=Double.valueOf(atts.getChildText("String_Node_Str"));
    yposition=Double.valueOf(atts.getChildText("String_Node_Str"));
    zposition=Double.valueOf(atts.getChildText("String_Node_Str"));
    float radarFrequency=new Float(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    setRadarWaveLenght(299792457.9 / radarFrequency);
    setSatelliteOrbitInclination(97.44);
    setRevolutionsPerday(11);
    Double[] prf=new Double[3];
    if (getMode().equals("String_Node_Str")) {
      int prf_count=0;
      for (      Object o : doc.getRootElement().getChild("String_Node_Str").getChildren("String_Node_Str")) {
        Element elem=(Element)o;
        prf[prf_count]=Double.parseDouble(elem.getChild("String_Node_Str").getChild("String_Node_Str").getText());
        prf_count++;
      }
      setPRF1(prf[0]);
      setPRF2(prf[1]);
      setPRF3(prf[2]);
      setPRF(null);
      int b=0;
      int strip[]=new int[3];
      for (      Object o : doc.getRootElement().getChild("String_Node_Str").getChildren("String_Node_Str")) {
        if (b == 3) {
          continue;
        }
        Element elem=(Element)o;
        double start_range_time=new Double(elem.getChild("String_Node_Str").getChild("String_Node_Str").getText());
        double stop_range_time=new Double(elem.getChild("String_Node_Str").getChild("String_Node_Str").getText());
        double aver_range_time=start_range_time + (stop_range_time - start_range_time) / 2;
        int width=Integer.parseInt(w);
        int stripBound=new Double(((aver_range_time - rangeTimeStart) * width) / (rangeTimeStop - rangeTimeStart)).intValue();
        strip[0]=new Integer(stripBound);
        b++;
      }
      setStripBound1(strip[0]);
      setStripBound2(strip[1]);
      setStripBound3(strip[2]);
    }
    String val=doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText();
    setK(Double.parseDouble(val));
    MGRows=new Integer(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    MGCols=new Integer(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    MGRefRow=new Integer(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    MGRefCol=new Integer(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    MGRowSpacing=Double.valueOf(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    MGColSpacing=Double.valueOf(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    String MGtTimes=doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText();
    MGtTimes=MGtTimes.substring(0,MGtTimes.length() - 1);
    MGtTime=Timestamp.valueOf(MGtTimes.replaceAll("String_Node_Str","String_Node_Str")).getTime();
    MGtauTime=Double.valueOf(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    ImageRowSpacing=Double.valueOf(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    ImageColSpacing=Double.valueOf(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
  }
 catch (  JDOMException ex) {
    logger.error(ex.getMessage(),ex);
  }
catch (  IOException ex) {
    logger.error(ex.getMessage(),ex);
  }
}

Fixed version (ground truth):
public void parseProductXML(File productxml) throws TransformException {
  try {
    SAXBuilder builder=new SAXBuilder();
    doc=builder.build(productxml);
    Element atts=doc.getRootElement().getChild("String_Node_Str");
    setSatellite("String_Node_Str");
    setSensor("String_Node_Str");
    String pols="String_Node_Str";
    for (    Object o : atts.getChild("String_Node_Str").getChild("String_Node_Str").getChildren("String_Node_Str")) {
      Element elem=(Element)o;
      pols=pols + elem.getText() + "String_Node_Str";
    }
    pols.substring(0,pols.length() - 1);
    setPolarization(pols);
    setLookDirection(atts.getChild("String_Node_Str").getChild("String_Node_Str").getText());
    setMode(atts.getChild("String_Node_Str").getChild("String_Node_Str").getText());
    setProduct(atts.getChild("String_Node_Str").getChild("String_Node_Str").getText());
    setOrbitDirection(atts.getChild("String_Node_Str").getChild("String_Node_Str").getText());
    setMetaHeight(Integer.parseInt(atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText()));
    String w=atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText();
    setMetaWidth(Integer.parseInt(w));
    setRangeSpacing(Float.parseFloat(atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText()));
    setAzimuthSpacing(Float.parseFloat(atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText()));
    setNumberOfBytes(new Integer(atts.getChild("String_Node_Str").getChild("String_Node_Str").getText()) / 8);
    setENL(atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    setHeadingAngle(Double.parseDouble(atts.getChild("String_Node_Str").getChild("String_Node_Str").getText()));
    rangeTimeStart=Double.valueOf(atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    rangeTimeStop=Double.valueOf(atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    String time=atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText();
    setTimeStampStart(time.replaceAll("String_Node_Str","String_Node_Str"));
    time=atts.getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText();
    setTimeStampStop(time.replaceAll("String_Node_Str","String_Node_Str"));
    atts=doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str");
    double xvelocity=Double.valueOf(atts.getChildText("String_Node_Str"));
    double yvelocity=Double.valueOf(atts.getChildText("String_Node_Str"));
    double zvelocity=Double.valueOf(atts.getChildText("String_Node_Str"));
    double satellite_speed=Math.sqrt(xvelocity * xvelocity + yvelocity * yvelocity + zvelocity * zvelocity);
    setSatelliteSpeed(satellite_speed);
    xposition=Double.valueOf(atts.getChildText("String_Node_Str"));
    yposition=Double.valueOf(atts.getChildText("String_Node_Str"));
    zposition=Double.valueOf(atts.getChildText("String_Node_Str"));
    float radarFrequency=new Float(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    setRadarWaveLenght(299792457.9 / radarFrequency);
    setSatelliteOrbitInclination(97.44);
    setRevolutionsPerday(11);
    Double[] prf=null;
    if (getMode().equals("String_Node_Str")) {
      List<Element> sets=doc.getRootElement().getChild("String_Node_Str").getChildren("String_Node_Str");
      prf=new Double[sets.size()];
      int prf_count=0;
      for (      Object o : sets) {
        Element elem=(Element)o;
        prf[prf_count]=Double.parseDouble(elem.getChild("String_Node_Str").getChild("String_Node_Str").getText());
        prf_count++;
      }
      setPRF1(prf[0]);
      setPRF2(prf[1]);
      setPRF3(prf[2]);
      setPRF(null);
      int b=0;
      int strip[]=new int[3];
      for (      Object o : doc.getRootElement().getChild("String_Node_Str").getChildren("String_Node_Str")) {
        if (b == 3) {
          continue;
        }
        Element elem=(Element)o;
        double start_range_time=new Double(elem.getChild("String_Node_Str").getChild("String_Node_Str").getText());
        double stop_range_time=new Double(elem.getChild("String_Node_Str").getChild("String_Node_Str").getText());
        double aver_range_time=start_range_time + (stop_range_time - start_range_time) / 2;
        int width=Integer.parseInt(w);
        int stripBound=new Double(((aver_range_time - rangeTimeStart) * width) / (rangeTimeStop - rangeTimeStart)).intValue();
        strip[0]=new Integer(stripBound);
        b++;
      }
      setStripBound1(strip[0]);
      setStripBound2(strip[1]);
      setStripBound3(strip[2]);
    }
    String val=doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText();
    setK(Double.parseDouble(val));
    MGRows=new Integer(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    MGCols=new Integer(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    MGRefRow=new Integer(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    MGRefCol=new Integer(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    MGRowSpacing=Double.valueOf(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    MGColSpacing=Double.valueOf(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    String MGtTimes=doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText();
    MGtTimes=MGtTimes.substring(0,MGtTimes.length() - 1);
    MGtTime=Timestamp.valueOf(MGtTimes.replaceAll("String_Node_Str","String_Node_Str")).getTime();
    MGtauTime=Double.valueOf(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    ImageRowSpacing=Double.valueOf(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
    ImageColSpacing=Double.valueOf(doc.getRootElement().getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getChild("String_Node_Str").getText());
  }
 catch (  JDOMException ex) {
    logger.error(ex.getMessage(),ex);
  }
catch (  IOException ex) {
    logger.error(ex.getMessage(),ex);
  }
}