[Demonstration 1]

[Buggy Method]
private Status checkIfApplicable(Update update) {
    UpdateMetaInfo existing = store.getForRefId(update.metaInfo.refId);
    if (existing != null && existing.executed) {
        log.info("Skipping update " + update.metaInfo.refId + " - was executed before");
        return Status.EXECUTED_BEFORE;
    }
    int dbVersion = update.metaInfo.dbVersion;
    if (dbVersion != database.getVersion()) {
        if (dbVersion < IDatabase.CURRENT_VERSION && dbVersion >= Upgrades.FINAL_UPGRADE) {
            // its safe to assume that this update was executed before
            update.metaInfo.executed = true;
            store.save(update.metaInfo);
            log.info("Skipping update " + update.metaInfo.refId + " - was executed before");
            return Status.EXECUTED_BEFORE;
        }
        log.info("Skipping update " + update.metaInfo.refId + " - db version mismatch");
        return Status.DB_MISMATCH;
    }
    for (String depRefId : update.metaInfo.dependencies) {
        existing = store.getForRefId(depRefId);
        if (existing != null && existing.executed)
            continue;
        log.info("Skipping update " + update.metaInfo.refId + " - missing dependency " + depRefId);
        return Status.MISSING_DEPENDENCY;
    }
    return null;
}

[Buggy Hunk]
if (dbVersion < IDatabase.CURRENT_VERSION && dbVersion >= Upgrades.FINAL_UPGRADE) {

[Patch]
if (database.getVersion() > dbVersion) {

[Demonstration 2]

[Buggy Method]
@Override
public void onCreate(final SQLiteDatabase db) {
    getWritableDatabase().execSQL("CREATE TABLE IF NOT EXISTS " + this.tableName + " (" + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "name TEXT, " + "done INTEGER" + ");");
}

[Buggy Hunk]
getWritableDatabase().execSQL("CREATE TABLE IF NOT EXISTS " +

[Patch]
db.execSQL("CREATE TABLE IF NOT EXISTS " +

[Demonstration 3]

[Buggy Method]
static void createPokemonLanguageTable(Connection cnxn) {
    Statement stmt;
    try {
        cnxn.setAutoCommit(false);
        stmt = cnxn.createStatement();
        stmt.executeUpdate("DROP TABLE IF EXISTS PokemonLanguage");
        cnxn.commit();
        String createQuery = "CREATE TABLE PokemonLanguage (" + "pokemonId INT NOT NULL," + "languageId INT NOT NULL, " + "languageCode TEXT NOT NULL, " + "Name TEXT NOT NULL, " + "PRIMARY KEY(PokemonId, LanguageId)," + "FOREIGN KEY(pokemonId) REFERENCES Pokemon(Id))";
        stmt.executeUpdate(createQuery);
        cnxn.commit();
        stmt.close();
    } catch (Exception e) {
        System.err.println(e.getClass().getName() + ": " + e.getMessage());
        System.exit(0);
    }
}

[Buggy Hunk]
System.err.println(e.getClass().getName() + ": " + e.getMessage());

[Patch]
System.err.println(e.getClass().getName() + ": " + e.getMessage() + " in PokemonLanguage");