[Demonstration 1]

[Buggy Method]
public static ArrayList<Car> getAllCar(SQLiteDatabase db) throws SQLException {
    ArrayList<Car> car_list = new ArrayList<>();
    Cursor c = db.query(true, TABLE, COLUMNS, null, null, null, null, null, null);
    if ((c != null) && (c.getCount() > 0)) {
        while (c.moveToNext()) {
            Car car = new Car(c.getString(0), c.getString(1), c.getString(2), c.getString(3), c.getString(4), c.getString(5), Boolean.parseBoolean(c.getString(6)), c.getString(7), c.getString(9), c.getString(10));
            String last_driver = c.getString(8);
            if (last_driver != null)
                car.setLast_driver(last_driver);
            car.setUsers(GroupTable.getContact_ByCarID(db, car.getId()));
            car_list.add(car);
        }
    }
    c.close();
    return car_list;
}

[Buggy Hunk]
Cursor c = db.query(true, TABLE, COLUMNS, null, null, null, null, null, null);

[Patch]
Cursor c = db.query(true, TABLE, COLUMNS, null, null, null, null, NAME, null);

[Demonstration 2]

[Buggy Method]
private static LinkedList<GregorianCalendar> getApptOccurences(Appt appt, GregorianCalendar firstDay, GregorianCalendar lastDay) {
    LinkedList<GregorianCalendar> result = new LinkedList<GregorianCalendar>();
    //Make sure that the firstDay is before the last day
    if (!firstDay.before(lastDay)) {
        return result;
    }
    //Get the first recurrence taken care of
    GregorianCalendar occurrenceDay = new GregorianCalendar(appt.getStartYear(), appt.getStartMonth(), appt.getStartDay());
    //If the first occurrence is after the last day, then it doesn't matter
    //when it recurs because those dates must be after the last day too
    if (!occurrenceDay.before(lastDay)) {
        return result;
    }
    //Make sure that there is a limited number of recurrences
    for (int i = 0; i < appt.getRecurNumber() + 1; i++) {
        //Add the day of occurrence to the list if it is after the first day
        if (!occurrenceDay.before(firstDay)) {
            result.add(occurrenceDay);
        }
        //Calculate the next recurrence day
        occurrenceDay = getNextApptOccurrence(appt, occurrenceDay);
        //Keep cycling while the occurence day is in range
        if (!occurrenceDay.before(lastDay)) {
            break;
        }
    }
    return result;
}

[Buggy Hunk]
if (!occurrenceDay.before(lastDay)) {

[Patch]
if (occurrenceDay != null && !occurrenceDay.before(lastDay)) {

[Demonstration 3]

[Buggy Method]
public void removeRangePartial(int startPos, int count) {
    mCompletedBrickInfoList.removeAll(mCompletedBrickInfoList.subList(startPos, startPos + count));
    rebuildPositionCache(mCompletedBrickInfoList);
    mAdapter.removeRange(startPos, count);
}

[Buggy Hunk]
mCompletedBrickInfoList.removeAll(mCompletedBrickInfoList.subList(startPos, startPos + count));

[Patch]
mCompletedBrickInfoList.removeAll(new ArrayList<>(mCompletedBrickInfoList).subList(startPos, startPos + count));