[Demonstration 1]

[Buggy Method]
private void addChildNodeAtIndexToNodeAndStack(ArrayList<String> sourceStrings, Integer childIndex, NodeExtended node, Deque<NodeExtended> stack) {
    Integer otherChildIndex = 0;
    if (childIndex == 0) {
        otherChildIndex = 1;
    }
    if ((sourceStrings.get(childIndex) != null) && (node.indexes.get(childIndex) < sourceStrings.get(childIndex).length())) {
        String childStringAtIndex = StringUtils.getSafeSubstringLengthOneAtIndex(sourceStrings.get(childIndex), node.indexes.get(childIndex) + 1);
        String childNodeValue = node.value.concat(childStringAtIndex);
        ArrayList<Integer> childNodeIndexes = new ArrayList<Integer>();
        if (childIndex == 0) {
            childNodeIndexes.add(node.indexes.get(childIndex) + 1);
            childNodeIndexes.add(node.indexes.get(otherChildIndex));
        } else {
            childNodeIndexes.add(node.indexes.get(otherChildIndex));
            childNodeIndexes.add(node.indexes.get(childIndex) + 1);
        }
        NodeExtended childNode = new NodeExtended(childNodeValue, childNodeIndexes, null, false, false);
        ((ArrayList<Node>) node.children).set(childIndex, childNode);
        stack.push(childNode);
    }
}

[Buggy Hunk]
((ArrayList<Node>) node.children).set(childIndex, childNode);

[Patch]
((ArrayList<NodeExtended>) node.children).set(childIndex, childNode);

[Demonstration 2]

[Buggy Method]
public final boolean hasAnimal() {
    char ch = this.getCenter();
    return ch == 'b' && ch == 'd' && ch == 'p';
}

[Buggy Hunk]
return ch == 'b' && ch == 'd' && ch == 'p';

[Patch]
return ch == 'b' || ch == 'd' || ch == 'p';