[Demonstration 1]

[Buggy Method]
private void parseCommand() {
    labelGenerator = new LabelGenerator(getNameFormat(), new WithFullAddress());
    int ageLimitIndex = Arrays.asList(command).indexOf("--ageabove") + 1;
    int countryIndex = Arrays.asList(command).indexOf("--country") + 1;
    ArrayList<Validator> validators = new ArrayList<>();
    if (countryIndex != 0)
        validators.add(Options.COUNTRY.getValidator(command[countryIndex]));
    if (ageLimitIndex != 0)
        validators.add(Options.COUNTRY.getValidator(command[ageLimitIndex]));
    validations = new Validations(validators);
}

[Buggy Hunk]
validators.add(Options.COUNTRY.getValidator(command[ageLimitIndex]));

[Patch]
validators.add(Options.AGEABOVE.getValidator(command[ageLimitIndex]));

[Demonstration 2]

[Buggy Method]
void undock(DockNode node) {
    DockNodeEventHandler dockNodeEventHandler = dockNodeEventFilters.get(node);
    if (null != dockNodeEventHandler) {
        node.removeEventFilter(DockEvent.DOCK_OVER, dockNodeEventHandler);
        dockNodeEventFilters.remove(node);
    }
    // depth first search to find the parent of the node
    Stack<Parent> findStack = new Stack<>();
    findStack.push((Parent) root);
    while (!findStack.isEmpty()) {
        Parent parent = findStack.pop();
        if (parent instanceof ContentPane) {
            ContentPane pane = (ContentPane) parent;
            pane.removeNode(findStack, node);
            // if there is 0 children left, make sure we remove the split pane
            if (pane.getChildrenList().isEmpty()) {
                if (root == pane) {
                    this.getChildren().remove((Node) pane);
                    root = null;
                }
            } else if (pane.getChildrenList().size() == 1 && pane instanceof ContentTabPane && pane.getChildrenList().get(0) instanceof DockNode) {
                // if there is only 1-tab left, we replace it with the SplitPane
                List<Node> children = pane.getChildrenList();
                Node sibling = children.get(0);
                ContentPane contentParent = pane.getContentParent();
                contentParent.set((Node) pane, sibling);
                ((DockNode) sibling).tabbedProperty().setValue(false);
            }
        }
    }
    // is there only a single child left then hide its bar
    if (isFloating()) {
        DockNode onlyChild = getOnlyChild();
        if (null != onlyChild) {
            onlyChild.showTitleBar(false);
            dockTitleBar.mirrorNodeTitleBar(onlyChild);
        }
    }
}

[Buggy Hunk]
dockTitleBar.mirrorNodeTitleBar(onlyChild);

[Patch]
dockTitleBar.mirrorNodeTitleBar(node, onlyChild);

[Demonstration 3]

[Buggy Method]
@EventHandler
public void onPlayerInteractEvent(PlayerInteractEvent event) {
    if (!isEnabled())
        return;
    try {
        if (event.hasBlock() && event.getClickedBlock().getType() == Material.SIGN)
            return;
        if (event.hasItem() && event.useItemInHand() != Event.Result.DENY) {
            ForgePermittor.log("ItemType: " + getValidator().CheckItem(event.getItem()).toString(), true);
            if (!getProtectionManager().CanUseItem(event.getPlayer(), event.getPlayer().getLocation(), getValidator().CheckItem(event.getItem()))) {
                event.setUseItemInHand(Event.Result.DENY);
                event.setUseInteractedBlock(Event.Result.DENY);
                return;
            }
        }
        if (event.hasBlock() && event.useInteractedBlock() != Event.Result.DENY) {
            ForgePermittor.log("BlockType: " + getValidator().CheckBlock(event.getClickedBlock()).toString(), true);
            if (!getProtectionManager().CanUseBlock(event.getPlayer(), event.getClickedBlock(), getValidator().CheckBlock(event.getClickedBlock()))) {
                event.setUseInteractedBlock(Event.Result.DENY);
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

[Buggy Hunk]
if (event.hasBlock() && event.getClickedBlock().getType() == Material.SIGN)

[Patch]
if (event.hasBlock() && (event.getClickedBlock().getType() == Material.SIGN_POST || event.getClickedBlock().getType() == Material.WALL_SIGN))