Program: 84105
Project: 84105
Buggy source:
public void startElement(String uri,String localName,String qName,Attributes atts) throws SAXException {
  try {
    if ("String_Node_Str".equals(qName)) {
      text=new StringBuffer();
    }
 else     if ("String_Node_Str".equals(qName)) {
      String version=uri.substring(uri.lastIndexOf("String_Node_Str") + 1);
      if (!version.equals(XMLChangeLogParser.getSchemaVersion())) {
        log.warning(databaseChangeLog.getPhysicalFilePath() + "String_Node_Str" + version+ "String_Node_Str"+ XMLChangeLogParser.getSchemaVersion());
      }
      databaseChangeLog.setLogicalFilePath(atts.getValue("String_Node_Str"));
    }
 else     if ("String_Node_Str".equals(qName)) {
      String fileName=atts.getValue("String_Node_Str");
      handleIncludedChangeLog(fileName);
    }
 else     if (changeSet == null && "String_Node_Str".equals(qName)) {
      boolean alwaysRun=false;
      boolean runOnChange=false;
      if ("String_Node_Str".equalsIgnoreCase(atts.getValue("String_Node_Str"))) {
        alwaysRun=true;
      }
      if ("String_Node_Str".equalsIgnoreCase(atts.getValue("String_Node_Str"))) {
        runOnChange=true;
      }
      changeSet=new ChangeSet(atts.getValue("String_Node_Str"),atts.getValue("String_Node_Str"),alwaysRun,runOnChange,databaseChangeLog.getFilePath(),databaseChangeLog.getPhysicalFilePath(),atts.getValue("String_Node_Str"),atts.getValue("String_Node_Str"));
      if (StringUtils.trimToNull(atts.getValue("String_Node_Str")) != null) {
        changeSet.setFailOnError(Boolean.parseBoolean(atts.getValue("String_Node_Str")));
      }
    }
 else     if (changeSet != null && "String_Node_Str".equals(qName)) {
      text=new StringBuffer();
    }
 else     if (changeSet != null && change == null) {
      change=ChangeFactory.getInstance().create(qName);
      change.setChangeSet(changeSet);
      text=new StringBuffer();
      if (change == null) {
        throw new MigrationFailedException(changeSet,"String_Node_Str" + qName);
      }
      change.setFileOpener(fileOpener);
      if (change instanceof CustomChangeWrapper) {
        ((CustomChangeWrapper)change).setClassLoader(fileOpener.toClassLoader());
      }
      for (int i=0; i < atts.getLength(); i++) {
        String attributeName=atts.getQName(i);
        String attributeValue=atts.getValue(i);
        setProperty(change,attributeName,attributeValue);
      }
      change.setUp();
    }
 else     if (change != null && "String_Node_Str".equals(qName)) {
      ColumnConfig column=new ColumnConfig();
      for (int i=0; i < atts.getLength(); i++) {
        String attributeName=atts.getQName(i);
        String attributeValue=atts.getValue(i);
        setProperty(column,attributeName,attributeValue);
      }
      if (change instanceof AddColumnChange) {
        ((AddColumnChange)change).addColumn(column);
      }
 else       if (change instanceof CreateTableChange) {
        ((CreateTableChange)change).addColumn(column);
      }
 else       if (change instanceof InsertDataChange) {
        ((InsertDataChange)change).addColumn(column);
      }
 else       if (change instanceof UpdateDataChange) {
        ((UpdateDataChange)change).addColumn(column);
      }
 else       if (change instanceof CreateIndexChange) {
        ((CreateIndexChange)change).addColumn(column);
      }
 else       if (change instanceof ModifyColumnChange) {
        ((ModifyColumnChange)change).addColumn(column);
      }
 else {
        throw new RuntimeException("String_Node_Str" + change.getClass().getName());
      }
    }
 else     if (change != null && "String_Node_Str".equals(qName)) {
      ConstraintsConfig constraints=new ConstraintsConfig();
      for (int i=0; i < atts.getLength(); i++) {
        String attributeName=atts.getQName(i);
        String attributeValue=atts.getValue(i);
        setProperty(constraints,attributeName,attributeValue);
      }
      ColumnConfig lastColumn;
      if (change instanceof AddColumnChange) {
        lastColumn=((AddColumnChange)change).getLastColumn();
      }
 else       if (change instanceof CreateTableChange) {
        lastColumn=((CreateTableChange)change).getColumns().get(((CreateTableChange)change).getColumns().size() - 1);
      }
 else {
        throw new RuntimeException("String_Node_Str" + change.getClass().getName());
      }
      lastColumn.setConstraints(constraints);
    }
 else     if ("String_Node_Str".equals(qName)) {
      rootPrecondition=new AndPrecondition();
      preconditionLogicStack.push(rootPrecondition);
    }
 else     if (rootPrecondition != null) {
      currentPrecondition=PreconditionFactory.getInstance().create(qName);
      for (int i=0; i < atts.getLength(); i++) {
        String attributeName=atts.getQName(i);
        String attributeValue=atts.getValue(i);
        setProperty(currentPrecondition,attributeName,attributeValue);
      }
      preconditionLogicStack.peek().addNestedPrecondition(currentPrecondition);
      if (currentPrecondition instanceof PreconditionLogic) {
        preconditionLogicStack.push(((PreconditionLogic)currentPrecondition));
      }
      if ("String_Node_Str".equals(qName)) {
        text=new StringBuffer();
      }
    }
 else     if ("String_Node_Str".equals(qName)) {
      if (change instanceof CustomChangeWrapper) {
        ((CustomChangeWrapper)change).setParam(atts.getValue("String_Node_Str"),atts.getValue("String_Node_Str"));
      }
 else {
        throw new MigrationFailedException(changeSet,"String_Node_Str" + qName);
      }
    }
 else     if ("String_Node_Str".equals(qName)) {
      text=new StringBuffer();
    }
 else     if (change instanceof ExecuteShellCommandChange && "String_Node_Str".equals(qName)) {
      ((ExecuteShellCommandChange)change).addArg(atts.getValue("String_Node_Str"));
    }
 else {
      throw new MigrationFailedException(changeSet,"String_Node_Str" + qName);
    }
  }
 catch (  Exception e) {
    log.log(Level.SEVERE,"String_Node_Str" + e.getMessage(),e);
    e.printStackTrace();
    throw new SAXException(e);
  }
}

Fixed version (ground truth):
public void startElement(String uri,String localName,String qName,Attributes atts) throws SAXException {
  try {
    if ("String_Node_Str".equals(qName)) {
      text=new StringBuffer();
    }
 else     if ("String_Node_Str".equals(qName)) {
      String version=uri.substring(uri.lastIndexOf("String_Node_Str") + 1);
      if (!version.equals(XMLChangeLogParser.getSchemaVersion())) {
        log.warning(databaseChangeLog.getPhysicalFilePath() + "String_Node_Str" + version+ "String_Node_Str"+ XMLChangeLogParser.getSchemaVersion());
      }
      databaseChangeLog.setLogicalFilePath(atts.getValue("String_Node_Str"));
    }
 else     if ("String_Node_Str".equals(qName)) {
      String fileName=atts.getValue("String_Node_Str");
      handleIncludedChangeLog(fileName);
    }
 else     if (changeSet == null && "String_Node_Str".equals(qName)) {
      boolean alwaysRun=false;
      boolean runOnChange=false;
      if ("String_Node_Str".equalsIgnoreCase(atts.getValue("String_Node_Str"))) {
        alwaysRun=true;
      }
      if ("String_Node_Str".equalsIgnoreCase(atts.getValue("String_Node_Str"))) {
        runOnChange=true;
      }
      changeSet=new ChangeSet(atts.getValue("String_Node_Str"),atts.getValue("String_Node_Str"),alwaysRun,runOnChange,databaseChangeLog.getFilePath(),databaseChangeLog.getPhysicalFilePath(),atts.getValue("String_Node_Str"),atts.getValue("String_Node_Str"));
      if (StringUtils.trimToNull(atts.getValue("String_Node_Str")) != null) {
        changeSet.setFailOnError(Boolean.parseBoolean(atts.getValue("String_Node_Str")));
      }
    }
 else     if (changeSet != null && "String_Node_Str".equals(qName)) {
      text=new StringBuffer();
    }
 else     if (changeSet != null && change == null) {
      change=ChangeFactory.getInstance().create(qName);
      change.setChangeSet(changeSet);
      text=new StringBuffer();
      if (change == null) {
        throw new MigrationFailedException(changeSet,"String_Node_Str" + qName);
      }
      change.setFileOpener(fileOpener);
      if (change instanceof CustomChangeWrapper) {
        ((CustomChangeWrapper)change).setClassLoader(fileOpener.toClassLoader());
      }
      for (int i=0; i < atts.getLength(); i++) {
        String attributeName=atts.getQName(i);
        String attributeValue=atts.getValue(i);
        setProperty(change,attributeName,attributeValue);
      }
      change.setUp();
    }
 else     if (change != null && "String_Node_Str".equals(qName)) {
      ColumnConfig column=new ColumnConfig();
      for (int i=0; i < atts.getLength(); i++) {
        String attributeName=atts.getQName(i);
        String attributeValue=atts.getValue(i);
        setProperty(column,attributeName,attributeValue);
      }
      if (change instanceof AddColumnChange) {
        ((AddColumnChange)change).addColumn(column);
      }
 else       if (change instanceof CreateTableChange) {
        ((CreateTableChange)change).addColumn(column);
      }
 else       if (change instanceof InsertDataChange) {
        ((InsertDataChange)change).addColumn(column);
      }
 else       if (change instanceof UpdateDataChange) {
        ((UpdateDataChange)change).addColumn(column);
      }
 else       if (change instanceof CreateIndexChange) {
        ((CreateIndexChange)change).addColumn(column);
      }
 else       if (change instanceof ModifyColumnChange) {
        ((ModifyColumnChange)change).addColumn(column);
      }
 else {
        throw new RuntimeException("String_Node_Str" + change.getClass().getName());
      }
    }
 else     if (change != null && "String_Node_Str".equals(qName)) {
      ConstraintsConfig constraints=new ConstraintsConfig();
      for (int i=0; i < atts.getLength(); i++) {
        String attributeName=atts.getQName(i);
        String attributeValue=atts.getValue(i);
        setProperty(constraints,attributeName,attributeValue);
      }
      ColumnConfig lastColumn;
      if (change instanceof AddColumnChange) {
        lastColumn=((AddColumnChange)change).getLastColumn();
      }
 else       if (change instanceof CreateTableChange) {
        lastColumn=((CreateTableChange)change).getColumns().get(((CreateTableChange)change).getColumns().size() - 1);
      }
 else       if (change instanceof ModifyColumnChange) {
        lastColumn=((ModifyColumnChange)change).getColumns().get(((ModifyColumnChange)change).getColumns().size() - 1);
      }
 else {
        throw new RuntimeException("String_Node_Str" + change.getClass().getName());
      }
      lastColumn.setConstraints(constraints);
    }
 else     if ("String_Node_Str".equals(qName)) {
      rootPrecondition=new AndPrecondition();
      preconditionLogicStack.push(rootPrecondition);
    }
 else     if (rootPrecondition != null) {
      currentPrecondition=PreconditionFactory.getInstance().create(qName);
      for (int i=0; i < atts.getLength(); i++) {
        String attributeName=atts.getQName(i);
        String attributeValue=atts.getValue(i);
        setProperty(currentPrecondition,attributeName,attributeValue);
      }
      preconditionLogicStack.peek().addNestedPrecondition(currentPrecondition);
      if (currentPrecondition instanceof PreconditionLogic) {
        preconditionLogicStack.push(((PreconditionLogic)currentPrecondition));
      }
      if ("String_Node_Str".equals(qName)) {
        text=new StringBuffer();
      }
    }
 else     if ("String_Node_Str".equals(qName)) {
      if (change instanceof CustomChangeWrapper) {
        ((CustomChangeWrapper)change).setParam(atts.getValue("String_Node_Str"),atts.getValue("String_Node_Str"));
      }
 else {
        throw new MigrationFailedException(changeSet,"String_Node_Str" + qName);
      }
    }
 else     if ("String_Node_Str".equals(qName)) {
      text=new StringBuffer();
    }
 else     if (change instanceof ExecuteShellCommandChange && "String_Node_Str".equals(qName)) {
      ((ExecuteShellCommandChange)change).addArg(atts.getValue("String_Node_Str"));
    }
 else {
      throw new MigrationFailedException(changeSet,"String_Node_Str" + qName);
    }
  }
 catch (  Exception e) {
    log.log(Level.SEVERE,"String_Node_Str" + e.getMessage(),e);
    e.printStackTrace();
    throw new SAXException(e);
  }
}