[Demonstration 1]

[Buggy Method]
@Override
public void onCreate(SQLiteDatabase db) {
    String createCarsTable = "CREATE TABLE " + DBConstants.DATABASE_TABLE_CARS + " (id INTEGER PRIMARY KEY AUTOINCREMENT, model TEXT, color TEXT, price TEXT, description TEXT, image_url TEXT)";
    db.execSQL(createCarsTable);
    InitiateCars.initCars(db);
    String createCarImageTable = "CREATE TABLE " + DBConstants.DATABASE_TABLE_CAR_IMAGES + "(id INTEGER PRIMARY KEY AUTOINCREMENT, car_id INTEGER, car_image_url TEXT)";
    db.execSQL(createCarImageTable);
    InitiateCars.initCarImages(db);
    String createCarCommentsTable = "CREATE TABLE " + DBConstants.DATABASE_TABLE_FEEDBACK + "(id INTEGER PRIMARY KEY AUTOINCREMENT, car_id INTEGER, user_name TEXT, user_avatar_url TEXT, user_feedback TEXT)";
    db.execSQL(createCarCommentsTable);
    InitiateCars.initCarImages(db);
}

[Buggy Hunk]
InitiateCars.initCarImages(db);

[Patch]
InitiateCars.initCarFeedback(db);

[Demonstration 2]

[Buggy Method]
@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_USER_TABLE = "CREATE TABLE " + TABLE_USER + "(" + KEY_ID + " INTEGER PRIMARY KEY, " + KEY_NAME + " TEXT, " + KEY_EMAIL + " TEXT, " + KEY_IS_ADMIN + " BOOLEAN" + ")";
    String CREATE_ARTIST_TABLE = "CREATE TABLE " + TABLE_ARTIST + "(" + KEY_ID + " INTEGER PRIMARY KEY, " + KEY_NAME + " TEXT, " + KEY_IMAGE + " TEXT" + ")";
    String CREATE_ALBUM_TABLE = "CREATE TABLE " + TABLE_ALBUM + "(" + KEY_ID + " INTEGER PRIMARY KEY, " + KEY_ARTIST_ID + " INTEGER, " + KEY_NAME + " TEXT, " + KEY_COVER + " TEXT" + ")";
    String CREATE_SONG_TABLE = "CREATE TABLE " + TABLE_SONG + "(" + KEY_ID + " TEXT PRIMARY KEY, " + KEY_ALBUM_ID + " INTEGER, " + KEY_TITLE + " TEXT, " + KEY_LENGTH + " DOUBLE, " + KEY_TRACK + " INTEGER" + ")";
    String CREATE_PLAYLIST_TABLE = "CREATE TABLE " + TABLE_PLAYLIST + "(" + KEY_ID + " TEXT PRIMARY KEY, " + KEY_USER_ID + " INTEGER, " + KEY_NAME + " TEXT" + ")";
    String CREATE_PLAYLIST_SONG_TABLE = "CREATE TABLE " + TABLE_PLAYLIST_SONG + "(" + KEY_ID + " TEXT PRIMARY KEY, " + KEY_PLAYLIST_ID + " INTEGER, " + KEY_SONG_ID + " INTEGER" + ")";
    db.execSQL(CREATE_USER_TABLE);
    db.execSQL(CREATE_ARTIST_TABLE);
    db.execSQL(CREATE_ALBUM_TABLE);
    db.execSQL(CREATE_SONG_TABLE);
    db.execSQL(CREATE_PLAYLIST_TABLE);
    db.execSQL(CREATE_PLAYLIST_SONG_TABLE);
}

[Buggy Hunk]
+ KEY_ID + " TEXT PRIMARY KEY, " + KEY_ALBUM_ID + " INTEGER, " + KEY_TITLE + " TEXT, " + KEY_LENGTH + " DOUBLE, " + KEY_TRACK + " INTEGER"

[Patch]
+ KEY_ID + " TEXT PRIMARY KEY, " + KEY_ALBUM_ID + " INTEGER, " + KEY_TITLE + " TEXT, " + KEY_LENGTH + " DOUBLE, " + KEY_TRACK + " INTEGER, " + KEY_LOCAL_FILENAME + " TEXT"

[Demonstration 3]

[Buggy Method]
public static Result service(String ownerName, String projectName, String service, boolean isAdvertise) throws IOException, UnsupportedOperationException, ServletException {
    if (!isSupportedService(service)) {
        return forbidden(String.format("Unsupported service: '%s'", service));
    }
    Project project = Project.findByOwnerAndProjectName(ownerName, projectName);
    if (project == null) {
        return notFound();
    }
    models.User user = UserApp.currentUser();
    if (!isAllowed(project, service)) {
        if (user.isAnonymous()) {
            return BasicAuthAction.unauthorized(response());
        } else {
            // If you want the Git client showing your custom message to
            // the user, the Content-Type should be exact "text/plain"
            // without any parameter. For more details, see the code at
            // https://github.com/git/git/commit/426e70d4a11ce3b4f70636d57c6a0ab16ae08a00#diff-eea0ad565ec5903a11b6023755d491cfR154
            response().setHeader("Content-Type", "text/plain");
            return forbidden(String.format("'%s' has no permission to '%s/%s'.", user.name, ownerName, projectName));
        }
    }
    if (isAdvertise) {
        return ok(RepositoryService.gitAdvertise(project, service, response()));
    } else {
        if (request().body().isMaxSizeExceeded()) {
            return status(REQUEST_ENTITY_TOO_LARGE);
        } else {
            user.visits(project);
            return ok(RepositoryService.gitRpc(project, service, request(), response()));
        }
    }
}

[Buggy Hunk]
user.name, ownerName, projectName));

[Patch]
user.loginId, ownerName, projectName));