[Demonstration 1]

[Buggy Method]
public SessionInfo getSessionInfo(HttpServletRequest request) {
    String tokenId = request.getParameter(TokenManage.TOKEN_FIELD);
    if (F.empty(tokenId))
        return null;
    TokenWrap token;
    if (enableRedis) {
        if (TokenManage.DEFAULT_TOKEN.equals(tokenId)) {
            token = new TokenWrap(tokenId, DEFAULT_TOKEN, "测试超级管理员", this);
        } else {
            token = redisUserService.getToken(tokenId);
        }
    } else {
        token = tokenMap.get(tokenId);
    }
    if (token == null)
        return null;
    SessionInfo s = new SessionInfo();
    s.setId(token.getUid());
    s.setName(token.getName());
    return s;
}

[Buggy Hunk]
token = redisUserService.getToken(tokenId);

[Patch]
token = redisUserService.getToken(Namespace.USER_LOGIN_TOKEN+":"+tokenId);

[Demonstration 2]

[Buggy Method]
@RequestMapping(value = "/logout", method = RequestMethod.POST, produces = { "application/json;charset=UTF-8" })
@ResponseBody
public Object logout(HttpServletResponse response) {
    LoginResponse t = null;
    String token = request.getHeader("Bearer");
    if ((checkToken())) {
        response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
        return t;
    }
    try {
        appuserService.updateLogout(token);
    } catch (Exception e) {
        // TODO: handle exception
    }
    return t;
}

[Buggy Hunk]
String token = request.getHeader("Bearer");

[Patch]
String token =this.getToken();

[Demonstration 3]

[Buggy Method]
private Map<K, V> convert(Map<String, String> buckets) {
    final Converter<String, String> quoter = Quoter.forMaps();
    final Converter<String, K> keyConverter = quoter.reverse().andThen(keyStringifier.reverse());
    final Converter<String, V> valueConverter = quoter.reverse().andThen(valueStringifier.reverse());
    final Map<K, V> resultMap = newHashMap();
    try {
        for (Map.Entry<String, String> bucket : buckets.entrySet()) {
            final K convertedKey = keyConverter.convert(bucket.getKey());
            final V convertedValue = valueConverter.convert(bucket.getValue());
            resultMap.put(convertedKey, convertedValue);
        }
        return resultMap;
    } catch (Throwable e) {
        throw newIllegalArgumentException("The exception occurred during the conversion", e);
    }
}

[Buggy Hunk]
throw newIllegalArgumentException("The exception occurred during the conversion", e);

[Patch]
throw new IllegalArgumentException("The exception occurred during the conversion", e);