[Demonstration 1]

[Buggy Method]
public void drawPath(GraphicsContext grid, ArrayList<Node> path, double cellSize) {
    Node ptr = null, neighbor = null;
    grid.setStroke(Color.BLUEVIOLET);
    grid.setLineWidth(3);
    if (path == null) {
        return;
    }
    for (int i = path.size() - 1; i > 0; i--) {
        ptr = path.get(i);
        neighbor = path.get(i - 1);
        grid.strokeLine(ptr.x * cellSize + cellSize / 2 + ptr.x, ptr.y * cellSize + cellSize / 2 + ptr.y, neighbor.x * cellSize + cellSize / 2 + neighbor.x, neighbor.y * cellSize + cellSize / 2 + neighbor.y);
    }
}

[Buggy Hunk]
grid.setLineWidth(3);

[Patch]
grid.setLineWidth(cellSize/2-2);

[Demonstration 2]

[Buggy Method]
private void decreaseValue(int position) {
    if (numValue > minValue) {
        positions.remove(position);
        numValue--;
        setAdapter(new NumObjectImageAdapter());
        fireAfterNumChangedEvent(numValue + 1);
    }
}

[Buggy Hunk]
private void decreaseValue(int position) {

[Patch]
public void decreaseValue(int position) {

[Demonstration 3]

[Buggy Method]
public boolean setRequiredFields(Reference r) {
    String[] requiredFields = r.getRequiredFields();
    for (int i = 0; i < requiredFields.length; i++) {
        String fieldName = requiredFields[i];
        String field = io.readLine(fieldName + ": ");
        if (field.length() < 4) {
            if (r.getField(fieldName).length() >= 4) {
                continue;
            }
            return false;
        }
        r.addField(fieldName, field);
    }
    return true;
}

[Buggy Hunk]
if (r.getField(fieldName).length() >= 4) {

[Patch]
if (r.getField(fieldName) != null) {