[Demonstration 1]

[Buggy Method]
@Override
public Set<Node> computeShortestPathSearchSpace(final Set<Node> sources, final Node destination) {
    Map<Node, TentativeNodeContainer> nodeToData = computeShortestPathCostHelper(sources, Optional.empty());
    return nodeToData.keySet();
}

[Buggy Hunk]
Map<Node, TentativeNodeContainer> nodeToData = computeShortestPathCostHelper(sources, Optional.empty());

[Patch]
Map<Node, TentativeNodeContainer> nodeToData = computeShortestPathCostHelper(sources, Optional.of(destination));

[Demonstration 2]

[Buggy Method]
public void printNodes() {
    for (int nodeId : this.nodeMap.keySet()) {
        printNode(this.functionMap.get(nodeId));
    }
}

[Buggy Hunk]
for(int nodeId : this.nodeMap.keySet()) {

[Patch]
for(int nodeId : this.origNodeMap.keySet()) {

[Demonstration 3]

[Buggy Method]
public Node getFirst() {
    Node temp = this;
    while (this.lastNode != null) {
        temp = temp.lastNode;
    }
    return temp;
}

[Buggy Hunk]
while(this.lastNode != null){

[Patch]
while(temp.lastNode != null){