Program: 82767
Project: 82767
Buggy source:
public void parse() throws Exception {
  SAXParser saxParser=SAXParserFactory.newInstance().newSAXParser();
  saxParser.parse(_report,new DefaultHandler(){
    private String _organisation;
    private String _module;
    private String _revision;
    private int _position;
    private Date _pubdate;
    private boolean _skip;
    private ModuleRevisionId _mrid;
    private boolean _default;
    private SortedMap _revisionsMap=new TreeMap();
    private List _revisionArtifacts=null;
    private int _maxPos;
    public void startElement(    String uri,    String localName,    String qName,    Attributes attributes) throws SAXException {
      if ("String_Node_Str".equals(qName)) {
        _organisation=attributes.getValue("String_Node_Str");
        _module=attributes.getValue("String_Node_Str");
      }
 else       if ("String_Node_Str".equals(qName)) {
        _revisionArtifacts=new ArrayList();
        _revision=attributes.getValue("String_Node_Str");
        _default=Boolean.valueOf(attributes.getValue("String_Node_Str")).booleanValue();
        String pos=attributes.getValue("String_Node_Str");
        _position=pos == null ? getMaxPos() + 1 : Integer.valueOf(pos).intValue();
        if (attributes.getValue("String_Node_Str") != null || attributes.getValue("String_Node_Str") != null) {
          _skip=true;
        }
 else {
          _revisionsMap.put(new Integer(_position),_revisionArtifacts);
          _mrid=ModuleRevisionId.newInstance(_organisation,_module,_revision,ExtendableItemHelper.getExtraAttributes(attributes,new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}));
          _mrids.add(_mrid);
          if (_default) {
            _defaultMrids.add(_mrid);
          }
 else {
            _realMrids.add(_mrid);
          }
          try {
            _pubdate=Ivy.DATE_FORMAT.parse(attributes.getValue("String_Node_Str"));
            _skip=false;
          }
 catch (          ParseException e) {
            throw new IllegalArgumentException("String_Node_Str" + _organisation + "String_Node_Str"+ _module+ "String_Node_Str"+ _revision+ "String_Node_Str"+ attributes.getValue("String_Node_Str"));
          }
        }
      }
 else       if ("String_Node_Str".equals(qName)) {
        if (_skip) {
          return;
        }
        String status=attributes.getValue("String_Node_Str");
        if (status != null && "String_Node_Str".equals(status)) {
          return;
        }
        String artifactName=attributes.getValue("String_Node_Str");
        String type=attributes.getValue("String_Node_Str");
        String ext=attributes.getValue("String_Node_Str");
        Artifact artifact=new DefaultArtifact(_mrid,_pubdate,artifactName,type,ext);
        _revisionArtifacts.add(artifact);
      }
    }
    public void endElement(    String uri,    String localName,    String qname) throws SAXException {
      if ("String_Node_Str".equals(qname)) {
        for (Iterator it=_revisionsMap.values().iterator(); it.hasNext(); ) {
          List artifacts=(List)it.next();
          _artifacts.addAll(artifacts);
        }
      }
    }
    private int getMaxPos(){
      return _revisionsMap.isEmpty() ? -1 : ((Integer)_revisionsMap.keySet().toArray()[_revisionsMap.size() - 1]).intValue();
    }
  }
);
}

Fixed version (ground truth):
public void parse() throws Exception {
  SAXParser saxParser=SAXParserFactory.newInstance().newSAXParser();
  saxParser.parse(_report,new DefaultHandler(){
    private String _organisation;
    private String _module;
    private String _revision;
    private int _position;
    private Date _pubdate;
    private boolean _skip;
    private ModuleRevisionId _mrid;
    private boolean _default;
    private SortedMap _revisionsMap=new TreeMap();
    private List _revisionArtifacts=null;
    private int _maxPos;
    public void startElement(    String uri,    String localName,    String qName,    Attributes attributes) throws SAXException {
      if ("String_Node_Str".equals(qName)) {
        _organisation=attributes.getValue("String_Node_Str");
        _module=attributes.getValue("String_Node_Str");
      }
 else       if ("String_Node_Str".equals(qName)) {
        _revisionArtifacts=new ArrayList();
        _revision=attributes.getValue("String_Node_Str");
        _default=Boolean.valueOf(attributes.getValue("String_Node_Str")).booleanValue();
        String pos=attributes.getValue("String_Node_Str");
        _position=pos == null ? getMaxPos() + 1 : Integer.valueOf(pos).intValue();
        if (attributes.getValue("String_Node_Str") != null || attributes.getValue("String_Node_Str") != null) {
          _skip=true;
        }
 else {
          _revisionsMap.put(new Integer(_position),_revisionArtifacts);
          _mrid=ModuleRevisionId.newInstance(_organisation,_module,_revision,ExtendableItemHelper.getExtraAttributes(attributes,new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}));
          _mrids.add(_mrid);
          if (_default) {
            _defaultMrids.add(_mrid);
          }
 else {
            _realMrids.add(_mrid);
          }
          try {
            _pubdate=Ivy.DATE_FORMAT.parse(attributes.getValue("String_Node_Str"));
            _skip=false;
          }
 catch (          ParseException e) {
            throw new IllegalArgumentException("String_Node_Str" + _organisation + "String_Node_Str"+ _module+ "String_Node_Str"+ _revision+ "String_Node_Str"+ attributes.getValue("String_Node_Str"));
          }
        }
      }
 else       if ("String_Node_Str".equals(qName)) {
        if (_skip) {
          return;
        }
        String status=attributes.getValue("String_Node_Str");
        if (status != null && "String_Node_Str".equals(status)) {
          return;
        }
        String artifactName=attributes.getValue("String_Node_Str");
        String type=attributes.getValue("String_Node_Str");
        String ext=attributes.getValue("String_Node_Str");
        Artifact artifact=new DefaultArtifact(_mrid,_pubdate,artifactName,type,ext);
        _revisionArtifacts.add(artifact);
      }
    }
    public void endElement(    String uri,    String localName,    String qname) throws SAXException {
      if ("String_Node_Str".equals(qname)) {
        for (Iterator it=_revisionsMap.values().iterator(); it.hasNext(); ) {
          List artifacts=(List)it.next();
          _artifacts.addAll(artifacts);
        }
      }
    }
    private int getMaxPos(){
      return _revisionsMap.isEmpty() ? -1 : ((Integer)_revisionsMap.keySet().toArray()[_revisionsMap.size() - 1]).intValue();
    }
  }
);
}