[Demonstration 1]

[Buggy Method]
@Override
public void onEnable() {
    getLogger().info(ChatColor.LIGHT_PURPLE + "Plugin has been enabled correctly!");
}

[Buggy Hunk]
getLogger().info(ChatColor.LIGHT_PURPLE + "Plugin has been enabled correctly!");

[Patch]
getLogger().info("Plugin has been enabled correctly!");

[Demonstration 2]

[Buggy Method]
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Cursor itemsCursor = new MergeCursor(new Cursor[] { managedQuery(TaskProvider.TasksColumns.CONTENT_URI, null, TaskProvider.TasksColumns.STATUS + "=" + TodoItem.ITEM_STATUS_DONE, null, TaskProvider.TasksColumns.LAST_MODIFIED + " ASC"), managedQuery(TaskProvider.TasksColumns.CONTENT_URI, null, TaskProvider.TasksColumns.STATUS + "=" + TodoItem.ITEM_STATUS_STARTED, null, TaskProvider.TasksColumns.LAST_MODIFIED + " ASC"), managedQuery(TaskProvider.TasksColumns.CONTENT_URI, null, TaskProvider.TasksColumns.STATUS + "=" + TodoItem.ITEM_STATUS_OPEN, null, TaskProvider.TasksColumns.ORDINAL + " ASC") });
    int idColumn = itemsCursor.getColumnIndexOrThrow(TaskProvider.TasksColumns._ID);
    int titleColumn = itemsCursor.getColumnIndexOrThrow(TaskProvider.TasksColumns.TITLE);
    int statusColumn = itemsCursor.getColumnIndexOrThrow(TaskProvider.TasksColumns.STATUS);
    int ordinalColumn = itemsCursor.getColumnIndexOrThrow(TaskProvider.TasksColumns.ORDINAL);
    for (itemsCursor.moveToFirst(); !itemsCursor.isAfterLast(); itemsCursor.moveToNext()) {
        Long taskID = itemsCursor.getLong(idColumn);
        Cursor tagCursor = managedQuery(TaskProvider.TaskTagsColumns.CONTENT_URI, new String[] { TaskProvider.TaskTagsColumns.TAG }, TaskProvider.TaskTagsColumns.TASK + "=?", new String[] { taskID.toString() }, null);
        HashSet<String> tags = new HashSet<String>();
        int tagColumn = tagCursor.getColumnIndexOrThrow(TaskProvider.TaskTagsColumns.TAG);
        for (tagCursor.moveToFirst(); !tagCursor.isAfterLast(); tagCursor.moveToNext()) tags.add(tagCursor.getString(tagColumn));
        TodoItem item = new TodoItem(itemsCursor.getString(titleColumn), tags, itemsCursor.getInt(statusColumn), itemsCursor.getInt(ordinalColumn), taskID);
        mItems.add(item);
        // the following works because of the ordering of the results
        if (item.getStatus() == TodoItem.ITEM_STATUS_DONE) {
            mDoneItemInsertIndex = mItems.size();
            mStartedItemInsertIndex = mItems.size();
        } else if (item.getStatus() == TodoItem.ITEM_STATUS_STARTED)
            mStartedItemInsertIndex = mItems.size();
    }
    mMaximalOccuringOrdinal = mItems.getLast().getOrdinal();
    SharedPreferences filterSettings = getPreferences(Context.MODE_PRIVATE);
    mFilter = new Filter(filterSettings.getBoolean(FILTER_SETTING_OPEN_ALLOWED, true), filterSettings.getBoolean(FILTER_SETTING_STARTED_ALLOWED, true), filterSettings.getBoolean(FILTER_SETTING_DONE_ALLOWED, true));
    int numberOfFilterTags = filterSettings.getInt(FILTER_SETTING_NUMBER_OF_TAGS, 0);
    for (int i = 1; i <= numberOfFilterTags; i++) {
        String currentTag = filterSettings.getString(FILTER_SETTING_TAG_PREFIX + i, "");
        mFilter.addTag(currentTag);
    }
    setContentView(R.layout.list_activity);
    mButtonDelete = findViewById(R.id.delete);
    mButtonDown = findViewById(R.id.down);
    mButtonEdit = findViewById(R.id.edit);
    mButtonToggle = findViewById(R.id.toggle);
    mButtonUp = findViewById(R.id.up);
    mTodoListAdapter = new TodoListAdapter(this, R.layout.todo_list_item, mFilteredItems);
    mListView = (ListView) findViewById(R.id.list);
    mListView.setOnItemClickListener(this);
    mListView.setAdapter(mTodoListAdapter);
    updateOccuringTags();
    updateFilteredList();
    updateButtonStates();
}

[Buggy Hunk]
mMaximalOccuringOrdinal = mItems.getLast().getOrdinal();

[Patch]
mMaximalOccuringOrdinal = mItems.isEmpty() ? 0 : mItems.getLast().getOrdinal();

[Demonstration 3]

[Buggy Method]
public boolean addItem(ItemStack item, Player player) {
    if (!canAddItem(item, player)) {
        return false;
    }
    //Backup contents
    ItemStack[] backup = getContents().clone();
    ItemStack backupItem = new ItemStack(item.getTypeId(), item.getAmount(), item.getDurability());
    int max = MinecartManiaWorld.getMaxStackSize(item);
    //First attempt to merge the itemstack with existing item stacks that aren't full (< 64)
    for (int i = 0; i < size(); i++) {
        if (getItem(i) != null) {
            if (item.getTypeId() == 373 && getItem(i).getTypeId() == item.getTypeId()) {
                MinecartManiaLogger.getInstance().info("[addItem] 373:%d => 373:%d", item.getDurability(), getItem(i).getDurability());
            }
            if (getItem(i).getTypeId() == item.getTypeId() && getItem(i).getDurability() == item.getDurability()) {
                if (getItem(i).getAmount() + item.getAmount() <= max) {
                    setItem(i, new ItemStack(item.getTypeId(), getItem(i).getAmount() + item.getAmount(), item.getDurability()));
                    return true;
                } else {
                    int diff = getItem(i).getAmount() + item.getAmount() - max;
                    setItem(i, new ItemStack(item.getTypeId(), max, item.getDurability()));
                    item = new ItemStack(item.getTypeId(), diff, item.getDurability());
                }
            }
        }
    }
    //Attempt to add the item to an empty slot
    int emptySlot = firstEmpty();
    if (emptySlot > -1) {
        setItem(emptySlot, item);
        return true;
    }
    //if we fail, reset the inventory and item back to previous values
    setContents(backup);
    item = backupItem;
    return false;
}

[Buggy Hunk]
MinecartManiaLogger.getInstance().info("[addItem] 373:%d => 373:%d", item.getDurability(), getItem(i).getDurability());

[Patch]
System.out.println(String.format("[addItem] 373:%d => 373:%d", item.getDurability(), getItem(i).getDurability()));