[Demonstration 1]

[Buggy Method]
@Override
public T remove() {
    return forget(delegate.remove());
}

[Buggy Hunk]
return forget(delegate.remove());

[Patch]
return delegate.remove();

[Demonstration 2]

[Buggy Method]
public List<Node> getNodeCR() {
    List<Node> nodeList = new ArrayList<>(nodesByName.values());
    Collections.sort(nodeList, new Comparator<Node>() {

        @Override
        public int compare(Node o1, Node o2) {
            int num1 = getAdjacents(o1).size();
            int num2 = getAdjacents(o2).size();
            if (num1 < num2) {
                return -1;
            } else if (num2 < num1) {
                return 1;
            } else {
                return 0;
            }
        }
    });
    return nodeList;
}

[Buggy Hunk]
}else if (num2<num1){

[Patch]
}else if (num1>num2){

[Demonstration 3]

[Buggy Method]
@Override
public Plant createPlant(int x, int y, Sprite[] sprites) {
    if (enablePlants)
        return new Plant(x, y, sprites);
    else
        return null;
}

[Buggy Hunk]
return new Plant(x,y,sprites);

[Patch]
return new Plant(new Position(x,y),sprites);