[Demonstration 1]

[Buggy Method]
@Override
public List<ThumbnailBean> retrieveList(int offset, int size) {
    try {
        // Search the items of the page
        searchResult = search(searchQuery, getSortCriterion(), offset, size);
        totalNumberOfRecords = searchResult.getNumberOfRecords();
        // load the item
        Collection<Item> items = loadImages(searchResult.getResults());
        // Init the labels for the item
        if (!items.isEmpty()) {
            metadataLabels = new MetadataLabels((List<Item>) items, getLocale());
        }
        // Return the item as thumbnailBean
        return ListUtils.itemListToThumbList(items);
    } catch (ImejiException e) {
        BeanHelper.error(e.getMessage());
    }
    return new ArrayList<>();
}

[Buggy Hunk]
searchResult = search(searchQuery, getSortCriterion(), offset, size);

[Patch]
searchResult = search(getSearchQuery(), getSortCriterion(), offset, size);

[Demonstration 2]

[Buggy Method]
private void removeItem(final Item item) {
    getLoaderManager().restartLoader(LOADER_REMOVE, null, new LoaderManager.LoaderCallbacks<Result>() {

        @Override
        public Loader<Result> onCreateLoader(int id, Bundle args) {
            return new AsyncTaskLoader<Result>(getContext()) {

                @Override
                public Result loadInBackground() {
                    try {
                        return api.remove(item.id).execute().body();
                    } catch (Exception e) {
                        e.printStackTrace();
                        return null;
                    }
                }
            };
        }

        @Override
        public void onLoadFinished(Loader<Result> loader, Result data) {
            if (data == null || !data.isSuccess()) {
                Toast.makeText(getContext(), R.string.error, Toast.LENGTH_SHORT).show();
            } else {
                //adapter.remove(item);
            }
        }

        @Override
        public void onLoaderReset(Loader<Result> loader) {
        }
    }).forceLoad();
}

[Buggy Hunk]
getLoaderManager().restartLoader(LOADER_REMOVE, null, new LoaderManager.LoaderCallbacks<Result>() {

[Patch]
getLoaderManager().restartLoader(LOADER_REMOVE + item.hashCode(), null, new LoaderManager.LoaderCallbacks<Result>() {

[Demonstration 3]

[Buggy Method]
private void searchItems(String query) {
    query = query.toLowerCase();
    List<Item> results = new ArrayList<Item>();
    for (Item item : itemList) {
        String name = item.name.toLowerCase();
        if (name.contains(query)) {
            results.add(item);
        }
    }
    adapter = new ItemViewAdapter(context, results);
    setListAdapter(adapter);
}

[Buggy Hunk]
List<Item> results = new ArrayList<Item>();

[Patch]
List<Item> results = new ArrayList<>();