[Demonstration 1]

[Buggy Method]
@Override
protected ApiResponse process(Response response) {
    String body = body(response);
    YandexDirectResponse api_response;
    if (body.contains("error")) {
        api_response = Json.parse(body, YandexDirectResponse.class, true);
    } else {
        api_response = Json.parse(body, YandexDirectResponse.class, false);
    }
    List<String> units = response.getHeaders().get("Units");
    if (units != null && units.size() == 1) {
        String[] strings = units.get(0).split("/");
        if (strings.length == 3) {
            String string = strings[1];
            try {
                int points = Integer.parseInt(string);
                api_response.setApiPoints(points);
            } catch (Exception ignored) {
            }
        }
    }
    if (api_response.hasError())
        throw api_response.error();
    return api_response;
}

[Buggy Hunk]
if (body.contains("error")) {

[Patch]
if (body.contains("error") && !body.contains("errors-text")) { //FIXME

[Demonstration 2]

[Buggy Method]
public int getStateFor(int position) {
    if (stateMap.get(position) == null)
        stateMap.put(position, DEFAULT);
    return stateMap.get(position);
}

[Buggy Hunk]
public int getStateFor(int position) {

[Patch]
int getStateFor(int position) {

[Demonstration 3]

[Buggy Method]
@NonNull
protected ListMirakel getItemAt(int position) {
    final Cursor cursor = getCursor();
    if (position > 0 && position > MirakelModelPreferences.getDividerPosition()) {
        position--;
    }
    cursor.moveToPosition(position);
    return fromCursor(cursor);
}

[Buggy Hunk]
if (position > 0 && position > MirakelModelPreferences.getDividerPosition()) {

[Patch]
if ((position > 0) && (position > MirakelModelPreferences.getDividerPosition())) {