[Demonstration 1]

[Buggy Method]
protected Tree<RecipeCount> solveRecurse(Item item, Fraction nPerSec) {
    Recipe recipe = recipes.get(item);
    /*
		 * If the recipe is null, we have a raw ingredient
		 */
    if (recipe == null) {
        if (raw.containsKey(item)) {
            raw.put(item, raw.get(item).add(nPerSec));
        } else {
            raw.put(item, nPerSec);
        }
        return null;
    }
    Fraction recipeCount = nPerSec.multiply(new Fraction(recipe.time() / recipe.outputCount()));
    Tree<RecipeCount> tree = new Tree<>(new RecipeCount(recipe, recipeCount));
    if (machines.containsKey(recipe)) {
        machines.put(recipe, machines.get(recipe).add(recipeCount));
    } else {
        machines.put(recipe, recipeCount);
    }
    for (Ingredient ingredient : recipe.ingredients()) {
        Tree<RecipeCount> child = solveRecurse(ingredient.item(), nPerSec.multiply(ingredient.count()));
        if (child != null) {
            tree.addChild(child);
        }
    }
    return tree;
}

[Buggy Hunk]
Tree<RecipeCount> child = solveRecurse(ingredient.item(), nPerSec.multiply(ingredient.count()));

[Patch]
Tree<RecipeCount> child = solveRecurse(ingredient.item(), nPerSec.multiply(ingredient.count()).divide(recipe.outputCount()));

[Demonstration 2]

[Buggy Method]
public void clip(Shape shape) {
    gc.clip(shape);
}

[Buggy Hunk]
gc.clip(shape);

[Patch]
if (gc != null) gc.clip(shape);

[Demonstration 3]

[Buggy Method]
@Override
public KeywordEntry<Double, Clip> trim(ChannelSection channelSection, ClipComponent clip, double offset, double length) {
    Clip clipInstance = clip.clipEntry.getValue();
    if (clipInstance instanceof ScoreClip) {
        ScoreClip sclip = (ScoreClip) clipInstance;
        removeScoreClip(channelSection, clip.clipEntry);
        (sclip).trim(sclip.getLength() + length - offset, sclip.getLength() + offset);
        KeywordEntry<Double, Clip> entry = new KeywordArray.DefaultKeywordEntry<Double, Clip>(Math.max(clip.start() + offset, 0.0), sclip);
        insertScoreClip(channelSection, entry);
        return entry;
    } else
        return null;
}

[Buggy Hunk]
(sclip).trim(sclip.getLength() + length - offset, sclip.getLength() + offset);

[Patch]
sclip.trim(sclip.getLength() + length - offset, - offset);