[Demonstration 1]

[Buggy Method]
@Override
public List<Class<?>> getServiceClasses() {
    return Arrays.asList(DocumentationService.class);
}

[Buggy Hunk]
return Arrays.asList(DocumentationService.class);

[Patch]
return new ClassList(DocumentationService.class);

[Demonstration 2]

[Buggy Method]
@RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
public ReturnModel get(@PathVariable Long id, @AutoCurrentUser User user) throws IOException {
    Message message = messageService.get(id);
    MessageIssues.checkIsDelete(message);
    message = MessageIssues.generateFakeMessage(message);
    likeeService.generateLikee(message, user);
    return ReturnModel.SUCCESS(message);
}

[Buggy Hunk]
Message message = messageService.get(id);

[Patch]
Message message = messageService.need(id);

[Demonstration 3]

[Buggy Method]
@SuppressWarnings("unchecked")
@Override
public <R> R getResults(Class<? extends R> type) {
    if (type.equals(String.class)) {
        return (R) (value.toString());
    } else if (type.equals(Long.class)) {
        return (R) value;
    } else {
        return null;
    }
}

[Buggy Hunk]
} else if (type.equals(Long.class)) {

[Patch]
} else if (type.equals(Double.class)) {