[Demonstration 1]

[Buggy Method]
IfStatement parseIfStatement() {
    match(Token.TokenType.IF_TOKEN);
    match(Token.TokenType.LPAREN_TOKEN);
    Expression expr = parseExpression();
    match(Token.TokenType.RPAREN_TOKEN);
    Statement stmt = parseStatement();
    if (s.viewNextToken().getTokenType() == Token.TokenType.ELSE_TOKEN) {
        match(Token.TokenType.ELSE_TOKEN);
        return new IfStatement(expr, stmt, parseStatement());
    } else {
        return new IfStatement(expr, stmt);
    }
}

[Buggy Hunk]
IfStatement parseIfStatement() {

[Patch]
IfStatement parseIfStatement() throws ParserException, IOException, LexicalErrorException {

[Demonstration 2]

[Buggy Method]
@POST
@Produces({ "text/plain" })
@Consumes({ "application/x-www-form-urlencoded" })
@Path("/login")
public Response login(@FormParam("user") String name, @FormParam("password") String password) {
    if (name == null || password == null) {
        return Response.status(Status.BAD_REQUEST).entity(getStrBundle().getString("miss.param")).build();
    } else if (name.length() < 1) {
        return Response.status(Status.BAD_REQUEST).entity(getStrBundle().getString("name.too.short")).build();
    } else if (name.length() > 20) {
        return Response.status(Status.BAD_REQUEST).entity(getStrBundle().getString("name.too.long")).build();
    } else {
        User loginUser = new User(name, password);
        if (!regUsers.contains(loginUser)) {
            String logError = getStrBundle().getString("login.error");
            getLog().warn(logError);
            return Response.status(Status.BAD_REQUEST).entity(logError).build();
        } else {
            Token token = new Token(loginUser);
            String responseBody;
            if (authUsers.containsKey(token) && authUsers.getUser(token).equals(loginUser)) {
                getLog().warn(getStrBundle().getString("already.logged"));
                responseBody = "Bearer " + token.toString();
            } else {
                authUsers.put(token, loginUser);
                responseBody = "Bearer " + token.toString();
            }
            getLog().info(String.format(getStrBundle().getString("login.token"), name, token.getToken()));
            return Response.ok(responseBody).build();
        }
    }
}

[Buggy Hunk]
Token token = new Token(loginUser);

[Patch]
Token token = new Token();

[Demonstration 3]

[Buggy Method]
public Value value(UiCodeAttribute uiAttribute) {
    UiCode code = uiAttribute.getCode();
    return new Code(code == null ? null : code.getValue());
}

[Buggy Hunk]
return new Code(code == null ? null : code.getValue());

[Patch]
return new Code(code == null ? null : code.getValue(), uiAttribute.getQualifier());