[Demonstration 1]

[Buggy Method]
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.step_view);
    Intent i = getIntent();
    recipe = CookBookStorage.getInstance().getRecipe(i.getIntExtra("Recipe", -1));
    steps = recipe.getSteps();
    TextView recipeName = (TextView) findViewById(R.id.step_view_recipe_name);
    recipeName.setText(recipe.getName());
    //Log.d("STEP_BY_STEPLOGGER", ((Integer)steps.size()).toString());
    TextView stepCount = (TextView) findViewById(R.id.step_view_step_count);
    stepCount.setText(((Integer) steps.size()).toString());
    showStep(stepPosition);
}

[Buggy Hunk]
steps = recipe.getSteps();

[Patch]
steps = CookBookStorage.getInstance().getRecipeSteps(recipe.getID());

[Demonstration 2]

[Buggy Method]
@Test
public void testAllocateNoPool() throws InterruptedException, ExecutionException {
    BufferPool.DISABLED = true;
    testAllocate(45, TimeUnit.MINUTES.toNanos(1L));
}

[Buggy Hunk]
testAllocate(45, TimeUnit.MINUTES.toNanos(1L));

[Patch]
testAllocate(45, TimeUnit.MINUTES.toNanos(2L));

[Demonstration 3]

[Buggy Method]
@Override
public void track(ItemStack stack, int size) {
    ItemStack inserted = ItemHandlerHelper.copyStackWithSize(stack, size);
    for (ICraftingTask task : craftingTasks) {
        for (ICraftingStep processable : task.getSteps()) {
            if (processable.onReceiveOutput(inserted)) {
                return;
            }
        }
    }
}

[Buggy Hunk]
for (ICraftingStep processable : task.getSteps()) {

[Patch]
for (ICraftingStep processable : task.getSteps().stream().filter(ICraftingStep::hasStartedProcessing).collect(Collectors.toList())) {