[Demonstration 1]

[Buggy Method]
private void ballFallDown() {
    double ballMinX = balls[0].getBall().getBoundsInParent().getMinX();
    double ballMaxX = balls[0].getBall().getBoundsInParent().getMaxX();
    double paddleMinX = paddle.getPaddle().getBoundsInParent().getMinX();
    double paddleMaxX = paddle.getPaddle().getBoundsInParent().getMaxX();
    double ballMaxY = balls[0].getBall().getBoundsInParent().getMaxY();
    double paddleMinY = paddle.getPaddle().getBoundsInParent().getMinY();
    if (ballMaxY >= paddleMinY && (ballMaxX <= paddleMinX || ballMinX >= paddleMaxX)) {
        endOfLife();
    }
}

[Buggy Hunk]
if (ballMaxY >= paddleMinY && (ballMaxX <= paddleMinX || ballMinX >= paddleMaxX)){

[Patch]
if (ballMaxY >= paddleMinY && (ballMinX < paddleMinX || ballMaxX > paddleMaxX)){

[Demonstration 2]

[Buggy Method]
public void mainLoop() {
    // Accelerate
    double a = 0.1f;
    double alpha = 0.1f;
    if (view.getKeyDown(KeyEvent.VK_DOWN) != view.getKeyDown(KeyEvent.VK_UP)) {
        if (view.getKeyDown(KeyEvent.VK_DOWN)) {
            velocity = velocity.relativePlus(velocity.unit(angle).times(-a));
        } else {
            velocity = velocity.relativePlus(velocity.unit(angle).times(a));
        }
    }
    if (view.getKeyDown(KeyEvent.VK_LEFT) != view.getKeyDown(KeyEvent.VK_RIGHT)) {
        if (view.getKeyDown(KeyEvent.VK_LEFT)) {
            angle += alpha;
        } else {
            angle -= alpha;
        }
    }
    velocity = velocity.checked(0.99f);
    // TODO: add objects on click, in current reference frame
    // Add random objects
    if (random(0, 1) < 0.05) {
        Event eventOffset = view.getEvent(random(0, view.getWidth()), random(0, view.getHeight()), velocity);
        timelines.add(new ConstantTimeline(eventOffset, velocity));
        // remove old objects to make room
        if (timelines.size() > 100) {
            timelines.remove(0);
        }
    }
    myTimeline.add(myTimeline.end().plus(velocity.over(dt)));
}

[Buggy Hunk]
velocity = velocity.checked(0.99f);

[Patch]
velocity = velocity.checked(0.99);

[Demonstration 3]

[Buggy Method]
public void draw(double width, double height) {
    if (gameover)
        return;
    if (position == null)
        position = new Vec2d(width / 2, height / 2);
    if (velocity == null)
        velocity = new Vec2d(-4, 0);
    position.x += velocity.x;
    position.y += velocity.y;
    if (velocity.x < 0 && position.x - radius < paddleOne.getWidth() && touchedPaddle(paddleOne)) {
        velocity.x *= -1;
        velocity.y += getVelocityY(paddleOne);
        position.x = paddleOne.getWidth() + radius * 2;
    }
    if (velocity.x > 0 && position.x + radius > width - paddleTwo.getWidth() && touchedPaddle(paddleTwo)) {
        velocity.x *= -1;
        velocity.y += getVelocityY(paddleTwo);
        position.x = width - paddleTwo.getWidth();
    }
    if (touchedWall(height))
        velocity.y *= -1;
    if (position.x >= 0 && position.x <= width) {
        getGraphicsContext().setFill(Color.RED);
        getGraphicsContext().fillOval(position.x - radius, position.y - radius, radius, radius);
    } else {
        gameover = true;
        if (velocity.x < 0)
            onPointListener.playerTwo();
        else
            onPointListener.playerOne();
    }
}

[Buggy Hunk]
getGraphicsContext().fillOval(position.x - radius, position.y - radius, radius, radius);

[Patch]
getGraphicsContext().fillOval(position.x - radius, position.y, radius, radius);