[Demonstration 1]

[Buggy Method]
@Override
@Transactional
public Warehouse findByName(String ingredientName) {
    Session session = sessionFactory.getCurrentSession();
    Query query = session.createQuery("select w from Warehouse w where w.ingredient.name like :name");
    //Query query = session.createQuery("from Warehouse w inner join Ingredient i on w.ingredient.name  = i.id where w.ingredient.name = ingredientName");
    query.setParameter("name", ingredientName);
    return (Warehouse) query.uniqueResult();
}

[Buggy Hunk]
query.setParameter("name", ingredientName);

[Patch]
query.setParameter("name", "%"+ ingredientName + "%");

[Demonstration 2]

[Buggy Method]
private <T> T callEndPoint(ConnectorContext context, Query query, String endpoint, Class<T> returnType) {
    String json = gson.toJson(query);
    RequestBody body = RequestBody.create(MediaType.parse(MEDIA_TYPE_APPLICATION_JSON), json);
    Request.Builder requestBuilder = populateBaseRequest(CHECK_HOTELS_ENDPOINT).post(body);
    Request request = requestBuilder.build();
    logger.debug(request.url().toString());
    Response response = null;
    try {
        response = client.newCall(request).execute();
    } catch (IOException e) {
        throw new CommunicationError("Could not contact with server", e);
    }
    if (response.code() >= 200 && response.code() < 300) {
        return gson.fromJson(response.body().charStream(), returnType);
    } else {
        ErrorObj errorObj = gson.fromJson(response.body().charStream(), ImmutableErrorObj.class);
        throw new RemoteError(response.code(), errorObj);
    }
}

[Buggy Hunk]
Request.Builder requestBuilder = populateBaseRequest(CHECK_HOTELS_ENDPOINT).post(body);

[Patch]
Request.Builder requestBuilder = populateBaseRequest(endpoint).post(body);

[Demonstration 3]

[Buggy Method]
public <T> T execute(final Supplier<T> function) {
    return execute((T) -> function.get());
}

[Buggy Hunk]
return execute((T) -> function.get());

[Patch]
return execute(t -> function.get());