Program: 84193
Project: 84193
Buggy source:
public void executeChangeSet(IdeFacade ide,Database database,ChangeMetaDataWizardPage metaDataPage,Change... changes) throws MigrationFailedException {
  ProgressMonitor monitor=ide.getProgressMonitor();
  Migrator migrator=ide.getMigrator(database);
  ChangeLogWriter changeLogWriter=ide.getChangeLogWriter();
  DatabaseChangeLog changeLog=ide.getRootChangeLog();
  monitor.beginTask("String_Node_Str",100);
  ChangeSet changeSet=null;
  try {
    monitor.subTask("String_Node_Str");
    migrator.getDatabase().checkDatabaseChangeLogTable(migrator);
    migrator.getDatabase().checkDatabaseChangeLogLockTable(migrator);
    monitor.worked(25);
    monitor.subTask("String_Node_Str");
    changeSet=new ChangeSet(metaDataPage.getId(),metaDataPage.getAuthor(),metaDataPage.isAlwaysRun(),metaDataPage.isRunOnChange(),changeLog,StringUtils.trimToNull(metaDataPage.getContext()),StringUtils.trimToNull(metaDataPage.getDbms()));
    changeSet.setComments(metaDataPage.getComments());
    for (    Change change : changes) {
      changeSet.addChange(change);
    }
    liquibase.database.Database liquibaseDatabase=migrator.getDatabase();
    for (    Change change : changeSet.getChanges()) {
      for (      SqlStatement sql : change.generateStatements(liquibaseDatabase)) {
        new JdbcTemplate(liquibaseDatabase).execute(sql);
      }
    }
    monitor.worked(25);
    monitor.subTask("String_Node_Str");
    migrator.markChangeSetAsRan(changeSet);
    monitor.worked(25);
    monitor.subTask("String_Node_Str");
    changeLogWriter.appendChangeSet(changeSet);
    monitor.done();
  }
 catch (  Exception e) {
    throw new MigrationFailedException(changeSet,e);
  }
}

Fixed version (ground truth):
public void executeChangeSet(IdeFacade ide,Database database,ChangeMetaDataWizardPage metaDataPage,Change... changes) throws MigrationFailedException {
  ProgressMonitor monitor=ide.getProgressMonitor();
  Migrator migrator=ide.getMigrator(null,database);
  ChangeLogWriter changeLogWriter=ide.getChangeLogWriter();
  DatabaseChangeLog changeLog=ide.getRootChangeLog();
  monitor.beginTask("String_Node_Str",100);
  ChangeSet changeSet=null;
  try {
    monitor.subTask("String_Node_Str");
    migrator.getDatabase().checkDatabaseChangeLogTable(migrator);
    migrator.getDatabase().checkDatabaseChangeLogLockTable(migrator);
    monitor.worked(25);
    monitor.subTask("String_Node_Str");
    changeSet=new ChangeSet(metaDataPage.getId(),metaDataPage.getAuthor(),metaDataPage.isAlwaysRun(),metaDataPage.isRunOnChange(),changeLog,StringUtils.trimToNull(metaDataPage.getContext()),StringUtils.trimToNull(metaDataPage.getDbms()));
    changeSet.setComments(metaDataPage.getComments());
    for (    Change change : changes) {
      changeSet.addChange(change);
    }
    liquibase.database.Database liquibaseDatabase=migrator.getDatabase();
    for (    Change change : changeSet.getChanges()) {
      for (      SqlStatement sql : change.generateStatements(liquibaseDatabase)) {
        new JdbcTemplate(liquibaseDatabase).execute(sql);
      }
    }
    monitor.worked(25);
    monitor.subTask("String_Node_Str");
    migrator.markChangeSetAsRan(changeSet);
    monitor.worked(25);
    monitor.subTask("String_Node_Str");
    changeLogWriter.appendChangeSet(changeSet);
    monitor.done();
  }
 catch (  Exception e) {
    throw new MigrationFailedException(changeSet,e);
  }
}