[Demonstration 1]

[Buggy Method]
public void setOption(OptionDto dto) {
    final boolean isSizeChange = dto.getMaximumDocumentMBSize() != globalAppData.getMaximumDocumentMBSize();
    if (dto.getLimitCountOfResult() > 0)
        globalAppData.setLimitCountOfResult(dto.getLimitCountOfResult());
    if (dto.getMaximumDocumentMBSize() > 0)
        globalAppData.setMaximumDocumentMBSize(dto.getMaximumDocumentMBSize());
    globalAppData.setKeywordMode(dto.getKeywordMode());
    EnumSet<TARGET_MODE> targetMode = EnumSet.noneOf(TARGET_MODE.class);
    if (dto.isPathTarget())
        targetMode.add(TARGET_MODE.PATH);
    if (dto.isContentTarget())
        targetMode.add(TARGET_MODE.CONTENT);
    globalAppData.setTargetMode(targetMode);
    globalAppData.writeAppDataToDisk();
    if (isSizeChange) {
        CompletableFuture<Boolean> f = handler.restartIndexAsync();
        f.exceptionally((exception) -> {
            LOG.error("To update indexes failed " + ExceptionUtils.getStackTrace(exception));
            return true;
        });
    }
    //indexActor.tell(new Restart(), null);
}

[Buggy Hunk]
CompletableFuture<Boolean> f = handler.restartIndexAsync();

[Patch]
CompletableFuture<Boolean> f = handler.restartIndexAsync(globalAppData.getDirectoryList());

[Demonstration 2]

[Buggy Method]
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    List<String> messages = new ArrayList<String>();
    HttpSession session = request.getSession();
    User user = new User();
    user.setId(Integer.parseInt(request.getParameter("userId")));
    user.setLoginId(request.getParameter("loginId"));
    user.setPassword(request.getParameter("password"));
    user.setName(request.getParameter("name"));
    user.setBranchId(Integer.parseInt(request.getParameter("branchId")));
    user.setDepartmentId(Integer.parseInt(request.getParameter("departmentId")));
    if (isValid(request, messages) == true) {
        new UserService().update(user);
        String validationMessage = "更新完了しました";
        session.setAttribute("validationMessage", validationMessage);
        request.getRequestDispatcher("edituser.jsp").forward(request, response);
    } else {
        session.setAttribute("editUser", user);
        session.setAttribute("errorMessages", messages);
        request.getRequestDispatcher("edituser.jsp").forward(request, response);
    }
}

[Buggy Hunk]
request.getRequestDispatcher("edituser.jsp").forward(request, response);

[Patch]
response.sendRedirect("admin");

[Demonstration 3]

[Buggy Method]
protected static void writeName(String nickname) {
    Font font = new Font("Open Sans", Font.PLAIN, 12);
    JLabel name = new JLabel(nickname.toUpperCase());
    name.setBounds(20, 115, 100, 22);
    name.setFont(font);
    name.setForeground(new Color(255, 255, 255, 255));
    layeredPane.add(name);
    layeredPane.setLayer(name, LAYER_GAME);
    name.setVisible(true);
}

[Buggy Hunk]
JLabel name = new JLabel(nickname.toUpperCase());

[Patch]
JLabel name = new JLabel(nickname);