[Demonstration 1]

[Buggy Method]
public void showRecipe() {
    if (recipe.getRecipe().startsWith("/storage/emulated/0/EmptyYourFridge/")) {
        ScrollView recipeScrollView = (ScrollView) findViewById(R.id.recipeScrollView);
        recipeScrollView.setVisibility(View.GONE);
        ImageView image = (ImageView) findViewById(R.id.recipeImage);
        BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
        Bitmap bitmap = BitmapFactory.decodeFile(recipe.getRecipe(), bitmapOptions);
        image.setImageBitmap(bitmap);
    } else {
        ImageView recipeImage = (ImageView) findViewById(R.id.recipeImage);
        recipeImage.setVisibility(View.GONE);
        TextView recipeText = (TextView) findViewById(R.id.recipe);
        recipeText.setText(recipe.getRecipe());
    }
}

[Buggy Hunk]
if (recipe.getRecipe().startsWith("/storage/emulated/0/EmptyYourFridge/")) {

[Patch]
if (recipe.getRecipe().endsWith(".jpg")) {

[Demonstration 2]

[Buggy Method]
private void parseMethod(Invokable<?, ?> method) {
    Request request = method.getAnnotation(Request.class);
    this.urlTemplate = UrlTemplate.create(request.url());
    this.asynchronous = isAsynchronous(method);
    this.method = request.method();
    /* If instance wrapped with Observable, we should extract generic type parameter */
    this.responseType = asynchronous ? getGenericSubtype(method.getReturnType()) : method.getReturnType().getType();
    this.returnBodyOnly = bodyOnly(method);
    /* walk through method parameters and find marked with internal annotations */
    ImmutableList<Parameter> methodParameters = method.getParameters();
    for (int i = 0; i < methodParameters.size(); i++) {
        Parameter parameter = methodParameters.get(i);
        if (parameter.isAnnotationPresent(Path.class)) {
            Path path = parameter.getAnnotation(Path.class);
            assert path != null;
            Preconditions.checkState(urlTemplate.hasPathVariable(path.value()), "There is no path parameter with name '%s' declared in url template", path.value());
            pathArguments.put(i, path.value());
        } else if (parameter.isAnnotationPresent(Body.class)) {
            this.bodyArgument = Optional.of(i);
            if (parameter.isAnnotationPresent(Multipart.class)) {
                Preconditions.checkArgument(TypeToken.of(MultiPartRequest.class).isSupertypeOf(parameter.getType()), "@Multipart parameters are expected to be MultiPartRequest. '%s' is not a MultiPartRequest", parameter.getType());
                multiPart = true;
            }
        } else if (parameter.isAnnotationPresent(Query.class)) {
            Preconditions.checkArgument(TypeToken.of(Map.class).isSupertypeOf(parameter.getType()), "@Query parameters are expected to be maps. '%s' is not a Map", parameter.getType());
            this.queryParameter = Optional.of(i);
        }
    }
    validationPathArguments(method);
}

[Buggy Hunk]
this.responseType = asynchronous ? getGenericSubtype(method.getReturnType()) : method.getReturnType().getType();

[Patch]
this.responseType = getResponseType(method);

[Demonstration 3]

[Buggy Method]
private List<User> getUserList() {
    return (List<User>) btUserRepo.findAll();
}

[Buggy Hunk]
return (List<User>) btUserRepo.findAll();

[Patch]
return (List<User>) btUserRepo.getByConfig(config);