[Demonstration 1]

[Buggy Method]
@Test
public void testPerformCall() {
    checkException(() -> BaseWebService.performCall("", sd -> true, sd -> BaseWebService.getBean(UserDao.class).get(sd.getUserId())));
}

[Buggy Hunk]
, sd -> BaseWebService.getBean(UserDao.class).get(sd.getUserId())));

[Patch]
, sd -> { throw new RuntimeException("test"); }));

[Demonstration 2]

[Buggy Method]
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String action = request.getParameter("action");
    HttpSession session = request.getSession();
    OfficeAdminClientDAO oficeAdminClient = new OfficeAdminClientDAO();
    List<EmployeeBean> employees = new ArrayList<EmployeeBean>();
    Object userId = (Integer) request.getSession().getAttribute(sessionVariables.getString("ACTIVE_USER_ID"));
    if (session.getAttribute("activeUserLocation") != null)
        employees = oficeAdminClient.getUnapprovedEmployees((Integer) session.getAttribute("activeUserLocation"));
    int numUnapprovedEmployees = employees.size();
    session.setAttribute("numAlerts", numUnapprovedEmployees);
    if (userId == null) {
        response.sendRedirect("jsps/login.jsp");
    } else if (action.equalsIgnoreCase("attendance")) {
        forwardToAttendance(request, response);
    } else if (action.equals("budget")) {
        forwardToBudget(request, response);
    } else if (action.equals("visitors")) {
        if (session.getAttribute("activeUserType") == null || (Integer) session.getAttribute("activeUserType") == 1) {
            response.sendRedirect("jsps/welcome.jsp");
        } else {
            response.sendRedirect("jsps/visitors.jsp");
        }
    } else if (action.equals("activateUsers")) {
        if (session.getAttribute("activeUserID") == null || (Integer) session.getAttribute("activeUserType") == 1) {
            response.sendRedirect("jsps/welcome.jsp");
        } else {
            forwardToActivateUsers(request, response);
        }
    } else if (action.equals("holidays")) {
        if (session.getAttribute("activeUserID") == null || (Integer) session.getAttribute("activeUserType") == 1) {
            response.sendRedirect("jsps/welcome.jsp");
        } else {
            response.sendRedirect("jsps/holidays.jsp");
        }
    } else if (action.equals("registration")) {
        forwardToRegistration(request, response);
    } else if (action.equals("superAdmin")) {
        forwardToSuperAdmin(request, response);
    } else if (action.equals("cart")) {
        forwardToCart(request, response);
    } else if (action.equals("productDetails")) {
        forwardToProductDetails(request, response);
    } else if (action.equalsIgnoreCase("generatePDF")) {
        generatePDF(request, response);
    } else if (action.equals("wishlist")) {
        forwardToWishlist(request, response);
    }
}

[Buggy Hunk]
if(userId == null){

[Patch]
if(userId == null && !action.equalsIgnoreCase("registration")){

[Demonstration 3]

[Buggy Method]
@Override
public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
    super.onDraw(c, parent, state);
    final RecyclerView.LayoutManager manager = parent.getLayoutManager();
    final int left = parent.getPaddingLeft();
    final int right = parent.getWidth() - parent.getPaddingRight();
    final int childCount = parent.getChildCount();
    if (childCount < 2) {
        return;
    }
    for (int i = 1; i < childCount; i++) {
        final View child = parent.getChildAt(i);
        final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
        if (params.getViewLayoutPosition() == 0) {
            continue;
        }
        // ViewCompat.getTranslationY() needs for add/delete animation
        final int top = manager.getDecoratedTop(child) - params.topMargin + Math.round(ViewCompat.getTranslationY(child));
        final int bottom = top + dividerHeight;
        c.drawRect(left + dividerMargin, top, right - dividerMargin, bottom, paint);
    }
}

[Buggy Hunk]
if (params.getViewLayoutPosition() == 0) {

[Patch]
if (params.getViewLayoutPosition() <= dividerStartPosition) {