Program: 84274
Project: 84274
Buggy source:
protected void dropForeignKeys(Connection conn) throws JDBCException {
  ResultSet tableRS=null;
  ResultSet fkRS=null;
  Statement dropStatement=null;
  try {
    tableRS=conn.getMetaData().getTables(getCatalogName(),getSchemaName(),null,new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
    while (tableRS.next()) {
      String tableName=tableRS.getString("String_Node_Str");
      String schemaName=tableRS.getString("String_Node_Str");
      String catalogName=tableRS.getString("String_Node_Str");
      if (isSystemTable(catalogName,schemaName,tableName)) {
        continue;
      }
      fkRS=conn.getMetaData().getExportedKeys(getCatalogName(),getSchemaName(),tableName);
      dropStatement=conn.createStatement();
      while (fkRS.next()) {
        DropForeignKeyConstraintChange dropFK=new DropForeignKeyConstraintChange();
        dropFK.setBaseTableName(fkRS.getString("String_Node_Str"));
        dropFK.setConstraintName(fkRS.getString("String_Node_Str"));
        try {
          dropStatement.execute(dropFK.generateStatements(this)[0]);
        }
 catch (        UnsupportedChangeException e) {
          throw new JDBCException(e.getMessage());
        }
      }
    }
  }
 catch (  SQLException e) {
    throw new JDBCException(e);
  }
 finally {
    if (dropStatement != null) {
      try {
        dropStatement.close();
      }
 catch (      SQLException e) {
        throw new JDBCException(e);
      }
    }
    if (fkRS != null) {
      try {
        fkRS.close();
      }
 catch (      SQLException e) {
        throw new JDBCException(e);
      }
    }
  }
}

Fixed version (ground truth):
protected void dropForeignKeys(Connection conn) throws JDBCException {
  ResultSet tableRS;
  ResultSet fkRS=null;
  Statement dropStatement=null;
  try {
    tableRS=conn.getMetaData().getTables(getCatalogName(),getSchemaName(),null,new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
    while (tableRS.next()) {
      String tableName=tableRS.getString("String_Node_Str");
      String schemaName=tableRS.getString("String_Node_Str");
      String catalogName=tableRS.getString("String_Node_Str");
      if (isSystemTable(catalogName,schemaName,tableName)) {
        continue;
      }
      fkRS=conn.getMetaData().getExportedKeys(getCatalogName(),getSchemaName(),tableName);
      dropStatement=conn.createStatement();
      while (fkRS.next()) {
        DropForeignKeyConstraintChange dropFK=new DropForeignKeyConstraintChange();
        dropFK.setBaseTableName(fkRS.getString("String_Node_Str"));
        dropFK.setConstraintName(fkRS.getString("String_Node_Str"));
        try {
          dropStatement.execute(dropFK.generateStatements(this)[0]);
        }
 catch (        UnsupportedChangeException e) {
          throw new JDBCException(e.getMessage());
        }
      }
    }
  }
 catch (  SQLException e) {
    throw new JDBCException(e);
  }
 finally {
    if (dropStatement != null) {
      try {
        dropStatement.close();
      }
 catch (      SQLException e) {
        throw new JDBCException(e);
      }
    }
    if (fkRS != null) {
      try {
        fkRS.close();
      }
 catch (      SQLException e) {
        throw new JDBCException(e);
      }
    }
  }
}