[Demonstration 1]

[Buggy Method]
private CompanionClassInfo getInfo(Class<?> clazz) {
    if (clazz == Object.class) {
        return null;
    }
    CompanionClassInfo info;
    if (!companionClasses.containsKey(clazz)) {
        Map<Property<?, ?>, Syncer<?, ?>> members = SyncCompanions.getSyncedMemberInfo(clazz);
        if (members.isEmpty()) {
            info = null;
        } else {
            Class<?> companionClass = new BytecodeEmittingCompanionGenerator(this, clazz, members).generateCompanion();
            info = new CompanionClassInfo(companionClass, members.size());
        }
        companionClasses.put(clazz, info);
    } else {
        info = companionClasses.get(clazz);
    }
    return info;
}

[Buggy Hunk]
Map<Property<?, ?>, Syncer<?, ?>> members = SyncCompanions.getSyncedMemberInfo(clazz);

[Patch]
Map<Property<?, ?>, Syncer<?, ?, ?>> members = SyncCompanions.getSyncedMemberInfo(clazz);

[Demonstration 2]

[Buggy Method]
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
    gson = new Gson();
    this.roundEnv = roundEnv;
    getAnnotatedInterfaces();
    for (Entry<String, AnnotatedClass> item : container.entrySet()) {
        String pathJsonFile;
        if (!processedInterfaces.contains(item.getValue())) {
            try {
                DtoData data = new DtoData();
                initializeObject(item, data);
                pathJsonFile = Utils.getPathForResource(processingEnv, ProcessorOptions.RESOURCE_FOLDER, item.getValue().getEntity().toString());
                pathJsonFile = pathJsonFile.concat(ClassUtils.getShortClassName(item.getValue().getEndpoint().toString())).concat(FILE_JSON_EXTENSIOn);
                try (FileWriter fw = new FileWriter(pathJsonFile)) {
                    gson.toJson(data, fw);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
                e.printStackTrace();
            } catch (ProcessingException e) {
                e.printStackTrace();
            }
            // add processed interface to the list
            processedInterfaces.add(item.getValue());
        }
    }
    return true;
}

[Buggy Hunk]
.concat(ClassUtils.getShortClassName(item.getValue().getEndpoint().toString()))

[Patch]
.concat(ClassUtils.getShortClassName(item.getValue().getEntity().toString()))

[Demonstration 3]

[Buggy Method]
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("Inside RetextMessagesServlet - doPost.");
    //send messages
    createNewUser(request, response);
}

[Buggy Hunk]
createNewUser(request, response);

[Patch]
createNewMessage(request, response);