[Demonstration 1]

[Buggy Method]
private void basicSearch() {
    Log.d(TAG, mBasicSearchEditText.getText().toString());
    if (mBasicSearchEditText.getText().toString().equals("")) {
        clearFilters();
        return;
    }
    int search_type = -1;
    int number = -1;
    String content = "";
    switch(mBasicSearchType.getCheckedRadioButtonId()) {
        case R.id.basic_match_number_option:
            search_type = 0;
            try {
                number = Integer.parseInt(mBasicSearchEditText.getText().toString());
            } catch (NumberFormatException e) {
                return;
            }
            break;
        case R.id.basic_team_number_option:
            search_type = 1;
            try {
                number = Integer.parseInt(mBasicSearchEditText.getText().toString());
            } catch (NumberFormatException e) {
                return;
            }
            break;
        case R.id.basic_content_option:
            search_type = 2;
            content = mBasicSearchEditText.getText().toString();
            break;
        default:
            assert (false);
    }
    mFilteredNotes = new ArrayList<>(mAllNotes);
    for (int i = 0; i < mFilteredNotes.size(); i++) {
        NoteView nv = mFilteredNotes.get(i);
        switch(search_type) {
            case 0:
                if (nv.match_number != number) {
                    mFilteredNotes.remove(i);
                    i--;
                    continue;
                }
                break;
            case 1:
                if (nv.team_number != number) {
                    mFilteredNotes.remove(i);
                    i--;
                    continue;
                }
                break;
            case 2:
                if (!nv.note.contains(content)) {
                    mFilteredNotes.remove(i);
                    i--;
                    continue;
                }
                break;
            case 3:
                if (!nv.tags.contains(content)) {
                    mFilteredNotes.remove(i);
                    i--;
                    continue;
                }
                break;
        }
    }
    mAdapter = new LVA_NotesView(this, mFilteredNotes);
    mListView.setAdapter(mAdapter);
}

[Buggy Hunk]
if(!nv.tags.contains(content)){

[Patch]
if(!nv.tags.get(content)){

[Demonstration 2]

[Buggy Method]
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    final Cursor cursor = getActivity().getContentResolver().query(DatabaseContract.Tags.CONTENT_URI, null, null, null, null);
    builder.setTitle(R.string.tag);
    builder.setSingleChoiceItems(cursor, -1, DatabaseContract.Tags.COLUMN_NAME, new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            if (mCallback == null) {
                throw new RuntimeException("Set Callback");
            }
            cursor.moveToPosition(which);
            mCallback.selectedTagName(cursor.getString(cursor.getColumnIndex(DatabaseContract.Tags.COLUMN_NAME)));
            dialog.dismiss();
        }
    });
    return builder.create();
}

[Buggy Hunk]
null);

[Patch]
DatabaseContract.Tags.COLUMN_NAME+" ASC");

[Demonstration 3]

[Buggy Method]
@Override
public void routeUpdated(RouteInfo route) {
    if (mInterfaceName.equals(route.getInterface())) {
        maybeLog("routeUpdated", route);
        boolean changed;
        synchronized (this) {
            changed = mLinkProperties.addRoute(route);
        }
        if (changed) {
            mCallback.update();
        }
    }
}

[Buggy Hunk]
mCallback.update();

[Patch]
mCallback.update(new LinkProperties(mLinkProperties));