[Demonstration 1]

[Buggy Method]
@Override
public List<IMeal> getMeals(String query, int limit, int start) {
    if (query.isEmpty()) {
        log.info("getall() for empty query");
        return mealRepository.getall();
    }
    List<IMeal> mealsFilteredByQuery = new ArrayList<IMeal>();
    // TODO use find method
    mealsFilteredByQuery.addAll(mealRepository.getall());
    //		mealsFilteredByQuery.addAll(mealRepository.findInAllNames(query));
    if (mealsFilteredByQuery.size() < limit) {
        return mealsFilteredByQuery;
    } else {
        if (limit >= start) {
            //				just limit the mealsList
            List<IMeal> mealsFilteredAndLimited = new ArrayList<IMeal>();
            for (int i = 0; i < limit; i++) {
                mealsFilteredAndLimited.add(mealsFilteredAndLimited.get(i));
            }
            return mealsFilteredAndLimited;
        } else {
            //				 limit and shift
            List<IMeal> mealsFilteredAndLimited = new ArrayList<IMeal>();
            for (int i = start; i < limit + start; i++) {
                mealsFilteredAndLimited.add(mealsFilteredAndLimited.get(i));
            }
            return mealsFilteredAndLimited;
        }
    }
}

[Buggy Hunk]
if(query.isEmpty()) {

[Patch]
if(query.isEmpty() || query == null) {

[Demonstration 2]

[Buggy Method]
@Override
public List<ProcessingJob> getDiffusedJobsWithState(JobPriority jobPriority, JobState jobState, Page page, Map<String, Integer> ipDistribution, Map<String, Boolean> ipsWithJobs) {
    final List<ProcessingJob> processingJobs = new ArrayList<>();
    for (Map.Entry<String, Integer> ip : ipDistribution.entrySet()) {
        final Query<ProcessingJob> query = datastore.find(ProcessingJob.class);
        query.criteria("priority").equal(jobPriority);
        query.criteria("state").equal(jobState);
        query.criteria("ipAddress").equal(ip.getKey());
        query.limit(page.getLimit());
        final List<ProcessingJob> temp = query.asList();
        if (temp.size() == 0) {
            ipsWithJobs.put(ip.getKey(), false);
        } else {
            ipsWithJobs.put(ip.getKey(), true);
        }
        processingJobs.addAll(temp);
    }
    return processingJobs;
}

[Buggy Hunk]
query.criteria("priority").equal(jobPriority);

[Patch]
query.criteria("priority").equal(jobPriority.getPriority());

[Demonstration 3]

[Buggy Method]
@Override
protected void onPostExecute(final String[][] result) {
    crossfade();
    if (result != null) {
        final MoviesDataAdapter moviesDataAdapter = new MoviesDataAdapter(getActivity(), result);
        moviesGrid.setAdapter(moviesDataAdapter);
        moviesGrid.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Log.d(LOG_TAG, "Clicked : " + i);
                mCallback.onMovieSelected(i, result[i][0], result[i][1], result[i][2], result[i][3], result[i][4]);
            }
        });
    }
}

[Buggy Hunk]
final MoviesDataAdapter moviesDataAdapter = new MoviesDataAdapter(getActivity(),result);

[Patch]
final MoviesDataAdapter moviesDataAdapter = new MoviesDataAdapter(getActivity(),result,movieList);