[Demonstration 1]

[Buggy Method]
@Override
protected void init() {
    length = word.length();
    System.out.println(length);
    starting_x = ChooseCategory.STARTING_X_2;
    starting_y = ChooseCategory.STARTING_Y_2;
    initBars();
    showBars();
}

[Buggy Hunk]
System.out.println(length);

[Patch]
System.out.println(word);

[Demonstration 2]

[Buggy Method]
@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    try {
        mCallbacks = (Callbacks) activity;
    } catch (ClassCastException e) {
        throw new ClassCastException("Activity must implement fragment's callbacks.");
    }
    category = getString(R.string.category_def);
}

[Buggy Hunk]
category = getString(R.string.category_def);

[Patch]
category = "";

[Demonstration 3]

[Buggy Method]
@Override
public String toStringTree() {
    StringBuilder builder = new StringBuilder();
    ASTBuilder node = this;
    List<ASTBuilder> printStack = new ArrayList<>();
    printStack.add(node);
    List<List<ASTBuilder>> childListStack = new ArrayList<>();
    childListStack.add(printStack);
    while (!childListStack.isEmpty()) {
        List<ASTBuilder> childStack = childListStack.get(childListStack.size() - 1);
        if (childStack.isEmpty()) {
            childListStack.remove(childListStack.size() - 1);
        } else {
            node = childStack.remove(0);
            String nodeText;
            if (node.payload instanceof Token) {
                Token token = (Token) node.payload;
                String type = vocabulary.getSymbolicName(token.getType());
                String text = token.getText();
                int pos = token.getCharPositionInLine();
                if (Objects.equals(type, "Id") || Objects.equals(type, "Float")) {
                    nodeText = String.format("%s[%s, %d, %d, %d]", type, text, token.getLine(), pos, pos + text.length() - 1);
                } else {
                    nodeText = String.format("%s[%d, %d, %d]", type, token.getLine(), pos, pos + text.length() - 1);
                }
            } else {
                nodeText = String.valueOf(node.payload);
            }
            StringBuilder indent = new StringBuilder();
            for (int i = 0; i < childListStack.size() - 1; i++) {
                indent.append((childListStack.get(i).size() > 0) ? "│  " : "   ");
            }
            builder.append(indent).append(childStack.isEmpty() ? "└── " : "├── ").append(nodeText).append("\n");
            if (node.children.size() > 0) {
                List<ASTBuilder> children = new ArrayList<>();
                children.addAll(node.children);
                childListStack.add(children);
            }
        }
    }
    return builder.toString();
}

[Buggy Hunk]
if (Objects.equals(type, "Id") || Objects.equals(type, "Float")) {

[Patch]
if (Objects.equals(type, "Id") || Objects.equals(type, "Float") || Objects.equals(type, "Boolean")) {