[Demonstration 1]

[Buggy Method]
@Login(action = Action.Skip)
@RequestMapping(value = "/doLogin", method = RequestMethod.POST)
public String doLogin(String userName, String password, String captcha, String return_url, Model model) {
    if (StringUtils.isBlank(userName) || StringUtils.isBlank(captcha) || StringUtils.isBlank(captcha)) {
        model.addAttribute("error", "用户名/密码/验证码不能为空.");
        return "login";
    }
    String sessionCaptcha = new KaptchaExtend().getGeneratedKey(request);
    if (StringUtils.isBlank(sessionCaptcha)) {
        model.addAttribute("error", "验证码已过期,请重新输入.");
        return "login";
    }
    if (!captcha.toLowerCase().equals(sessionCaptcha.toLowerCase())) {
        model.addAttribute("error", "验证码错误.");
        return "login";
    }
    SysUser sysUser = sysUserService.login(userName, password);
    if (sysUser == null) {
        model.addAttribute("error", "用户名或密码错误.");
        return "login";
    }
    /**
     * 登录成功
     */
    Token token = new Token();
    token.setUid(sysUser.getId());
    token.setUname(sysUser.getUserName());
    token.setIp(IpUtil.getIpAddr(request));
    TokenUtil.addToken(token, request);
    /**
     * 记录登录日志
     */
    sysLogService.insertLog("用户登录成功", sysUser, request.getRequestURI(), "******");
    if (StringUtils.isNotBlank(return_url)) {
        return redirectTo(return_url);
    }
    return redirectTo("/index");
}

[Buggy Hunk]
if(StringUtils.isBlank(userName) || StringUtils.isBlank(captcha) ||  StringUtils.isBlank(captcha)){

[Patch]
if(StringUtils.isBlank(userName) || StringUtils.isBlank(password) ||  StringUtils.isBlank(captcha)){

[Demonstration 2]

[Buggy Method]
public static Pair<String, String[]> buildWhereClause(Map<String, Object> paramMap) {
    if (paramMap == null || paramMap.size() == 0) {
        return null;
    }
    StringBuilder sb = new StringBuilder();
    List<String> argList = new ArrayList<>();
    boolean firstParam = true;
    for (Map.Entry<String, Object> entry : paramMap.entrySet()) {
        String key = entry.getKey();
        Object value = entry.getValue();
        if (!TextUtils.isEmpty(key)) {
            if (!firstParam) {
                sb.append(" AND");
            } else {
                firstParam = false;
                //sb.append(" WHERE");
            }
            if (value instanceof Collection) {
                Collection childValues = (Collection) value;
                boolean firstChild = true;
                for (Object childValue : childValues) {
                    if (!firstChild) {
                        sb.append(" OR");
                        sb.append(" ");
                    } else {
                        firstChild = false;
                        sb.append(" (");
                    }
                    sb.append(key);
                    sb.append("=");
                    sb.append("?");
                    argList.add(String.valueOf(childValue));
                }
                if (firstChild) {
                    sb.append(")");
                }
            } else {
                sb.append(" ");
                sb.append(key);
                sb.append("=");
                sb.append("?");
                argList.add(String.valueOf(value));
            }
        }
    }
    String[] args = new String[argList.size()];
    argList.toArray(args);
    return new Pair<>(sb.toString(), args);
}

[Buggy Hunk]
public static Pair<String, String[]> buildWhereClause(Map<String, Object> paramMap) {

[Patch]
private static Pair<String, String[]> buildWhereClause(Map<String, Object> paramMap) {

[Demonstration 3]

[Buggy Method]
@Override
public void run() {
    /*
			 * If the game is over there is no need to play.
			 */
    if (board.isGameOver() == true) {
        return;
    }
    /*
			 * Valid turn check.
			 */
    if (board.getTurn() % 2 != 1) {
        return;
    }
    /*
			 * Generate move.
			 */
    int[] move = bot.move(board.getCells(), Cell.Type.instanceOf(board.getTurn() % 2));
    /*
			 * Play move.
			 */
    boolean result = board.click(move[0], move[1]);
    if (result == true) {
        if (board.hasWinner() == true) {
            board.setGameOver();
        }
        board.next();
    }
    updateViews();
}

[Buggy Hunk]
int move[] = bot.move(board.getCells(), Cell.Type.instanceOf(board.getTurn() % 2));

[Patch]
int move[] = bot.move(board.getCells(), Cell.Type.play(board.getTurn()));