[Demonstration 2]

[Buggy Method]
public static void printCard(int card) {
    if (card < 11) {
        System.out.println(" " + a);
    } else if (card == 11) {
        System.out.println(" Jack");
    } else if (card == 12) {
        System.out.println(" Queen");
    } else if (card == 13) {
        System.out.println(" King");
    } else if (card == 14) {
        System.out.println(" Ace");
    }
}

[Buggy Hunk]
System.out.println(" " + a);

[Patch]
System.out.println(" " + card);

[Demonstration 3]

[Buggy Method]
public Unfiltered openNew(LegacyLayout.LegacyRangeTombstone tombstone) {
    if (openTombstones.isEmpty()) {
        openTombstones.add(tombstone);
        return new RangeTombstoneBoundMarker(tombstone.start.bound, tombstone.deletionTime);
    }
    Iterator<LegacyLayout.LegacyRangeTombstone> iter = openTombstones.iterator();
    LegacyLayout.LegacyRangeTombstone first = iter.next();
    if (tombstone.deletionTime.supersedes(first.deletionTime)) {
        // We're supperseding the currently open tombstone, so we should produce a boundary that close the currently open
        // one and open the new one. We should also add the tombstone, but if it stop after the first one, we should
        // also remove that first tombstone as it won't be useful anymore.
        if (metadata.comparator.compare(tombstone.stop.bound, first.stop.bound) >= 0)
            iter.remove();
        openTombstones.add(tombstone);
        return RangeTombstoneBoundaryMarker.makeBoundary(false, tombstone.start.bound.invert(), tombstone.start.bound, first.deletionTime, tombstone.deletionTime);
    } else {
        // If the new tombstone don't supersedes the currently open tombstone, we don't have anything to return, we
        // just add the new tombstone (because we know tombstone is not fully shadowed, this imply the new tombstone
        // simply extend after the first one and we'll deal with it later)
        assert metadata.comparator.compare(tombstone.start.bound, first.stop.bound) > 0;
        openTombstones.add(tombstone);
        return null;
    }
}

[Buggy Hunk]
assert metadata.comparator.compare(tombstone.start.bound, first.stop.bound) > 0;

[Patch]
assert metadata.comparator.compare(tombstone.start.bound, first.stop.bound) <= 0;