[Demonstration 1]

[Buggy Method]
public static Direction angleToDirection(float a) {
    return Direction.values()[(int) Math.round(a / Math.PI * 8)];
}

[Buggy Hunk]
return Direction.values()[(int)Math.round(a / Math.PI * 8)];

[Patch]
return Direction.values()[(int)Math.round(a / Math.PI * 8) % 16];

[Demonstration 2]

[Buggy Method]
public static List<Category> readCategory(Context context, int areaIndex, int locationIndex) {
    List<Category> categoryList = new ArrayList<>();
    SQLiteDatabase db;
    DataBaseHelper dbHelper = new DataBaseHelper(context);
    db = dbHelper.getReadableDatabase();
    Cursor cursor;
    String columnName = DBContract.Category.COLUMN_NAME;
    if (Constants.LOAD_ALTERNATE_LANGUAGE) {
        columnName = DBContract.Category.COLUMN_NAME_NL;
    }
    String query = "SELECT " + DBContract.Category.TABLE_NAME + "." + DBContract.Category._ID + ", " + DBContract.CatByLocation.TABLE_NAME + "." + DBContract.CatByLocation._ID + ", " + columnName + ", " + DBContract.CatByLocation.COLUMN_REMOVE + " FROM " + DBContract.Category.TABLE_NAME + ", " + DBContract.CatByLocation.TABLE_NAME + " WHERE " + DBContract.CatByLocation.COLUMN_CATEGORY_ID + " = " + DBContract.Category.TABLE_NAME + "." + DBContract.Category._ID + " AND " + DBContract.CatByLocation.COLUMN_LOCATION_ID + " =? AND " + DBContract.CatByLocation.COLUMN_REMOVE + " =? ORDER BY " + DBContract.Category.TABLE_NAME + "." + DBContract.Category._ID + ", " + DBContract.CatByLocation.TABLE_NAME + "." + DBContract.CatByLocation._ID;
    cursor = db.rawQuery(query, new String[] { String.valueOf(locationIndex), String.valueOf(0) });
    if (cursor.getCount() == 0) {
        cursor.close();
        db.close();
        return writeCatByLocation(context, areaIndex, locationIndex);
    }
    Log.e(TAG, Arrays.toString(cursor.getColumnNames()));
    for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
        int i = 0;
        List<String> cursorData = new ArrayList<>();
        while (i < cursor.getColumnCount()) {
            cursorData.add(cursor.getString(i));
            i++;
        }
        Log.e(TAG, cursorData.toString());
        Category category = new Category(Integer.parseInt(cursorData.get(0)), Integer.parseInt(cursorData.get(1)), cursorData.get(2), Boolean.parseBoolean(cursorData.get(3)));
        categoryList.add(category);
    }
    cursor.close();
    db.close();
    return categoryList;
}

[Buggy Hunk]
Boolean.parseBoolean(cursorData.get(3))

[Patch]
Integer.parseInt(cursorData.get(3)) != 0

[Demonstration 3]

[Buggy Method]
public Set<Class> getAllInterfaces(Class targetClass) {
    Set<Class> interfaces = Arrays.stream(targetClass.getInterfaces()).collect(toSet());
    interfaces.stream().map(this::getAllInterfaces).forEach(interfaces::addAll);
    return interfaces;
}

[Buggy Hunk]
interfaces.stream().map(this::getAllInterfaces).forEach(interfaces::addAll);

[Patch]
interfaces.forEach(i -> interfaces.addAll(this.getAllInterfaces(i)));