[Demonstration 1]

[Buggy Method]
private int getOperationIndex(String operation) {
    return featureList.get(operation);
}

[Buggy Hunk]
private int getOperationIndex(String operation) {

[Patch]
private Integer getOperationIndex(String operation) {

[Demonstration 2]

[Buggy Method]
TreeNode parseFactor() {
    TreeNode x;
    if (eat('(')) {
        x = parseComma();
        eat(')');
        return x;
    }
    if (eat('+'))
        return new UnaryTreeNode(Operator.PLUS, parseFactor());
    if (eat('-'))
        return new UnaryTreeNode(Operator.MINUS, parseFactor());
    if (eat('~'))
        return new UnaryTreeNode(Operator.INVERT, parseFactor());
    if (eat('!'))
        return new UnaryTreeNode(Operator.NOT, parseFactor());
    long num;
    int startPos = this.pos;
    if (ch >= '0' && ch <= '9') {
        boolean hex = false;
        while ((ch >= '0' && ch <= '9') || ch == 'x' || (ch >= 'a' && ch <= 'f') || (ch >= 'A' && ch <= 'F')) {
            nextChar();
            if (ch == 'x') {
                startPos = this.pos + 1;
                hex = true;
            }
        }
        if (hex)
            num = Long.parseLong(str.substring(startPos, this.pos), 16);
        else
            num = Long.parseLong(str.substring(startPos, this.pos));
        x = new ConstantTreeNode(num);
    } else if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) {
        while ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') || (ch >= '0' && ch <= '9') || ch == '_') nextChar();
        String var = str.substring(startPos, this.pos);
        if (constants.containsKey(var)) {
            x = new ConstantTreeNode(constants.get(var));
        } else {
            x = new VariableTreeNode(var);
        }
    } else {
        throw new RuntimeException("Unexpected: " + (char) ch + " at: " + pos);
    }
    return x;
}

[Buggy Hunk]
} else if((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) {

[Patch]
} else if((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') || ch == '_') {

[Demonstration 3]

[Buggy Method]
public static void addLocationToConversation(PaInputData data, SkillContext skillContext, String location) throws InvalidInputException {
    // Find address for location
    try {
        location = LocationCorrector.getLocation(location);
        log.info("putting value in session Slot Location:" + location);
        Location c = GoogleMaps.findSourceLocation(location);
        data.setLocation(c);
        data.setLocationName(c.getName());
        data.setLocationLat("" + c.getLat());
        data.setLocationLong("" + c.getLng());
        data.setLocationAddress(c.getAddress());
        if (!c.isAddress()) {
            skillContext.addFeedbackText("I found " + location + " at " + c.getStreetAddress() + ". ");
        }
    } catch (JSONException jsonE) {
        throw new InvalidInputException("No Location in Intent", jsonE, "Please repeat your location. " + OutputHelper.LOCATION_PROMPT);
    } catch (IOException ioE) {
        throw new InvalidInputException("Cannot reach Google Maps ", ioE, "Please repeat your location. " + OutputHelper.LOCATION_PROMPT);
    } catch (UnexpectedInputException e) {
        e.printStackTrace();
    }
}

[Buggy Hunk]
skillContext.addFeedbackText("I found " + location + " at " + c.getStreetAddress() + ". ");

[Patch]
skillContext.setFeedbackText("I found " + c.getName() + " at " + c.getStreetAddress() + ". ");