[Demonstration 1]

[Buggy Method]
public static void main(String[] args) {
    Stove stove = new Stove();
    stove.displayStove();
    for (Burner burner : stove.burners) {
        stove.increaseSetting(burner);
    }
    stove.displayStove();
}

[Buggy Hunk]
stove.increaseSetting(burner);

[Patch]
burner.increaseSetting(burner);

[Demonstration 2]

[Buggy Method]
private void readMessage(DataPacket dataPacket) throws IOException {
    DataPacket returnPacket = null;
    Logger.info("LocalClient - Received message from " + dataPacket.SENDER.ipAddress + ":" + dataPacket.MESSAGE.name());
    switch(dataPacket.MESSAGE) {
        case TOO_CLOSE:
            break;
        case TOO_FAR_AWAY:
            break;
        case SET_LEFT_NEIGHBOUR:
            if (PairingHandler.getInstance().setRight(dataPacket.SENDER)) {
                returnPacket = new DataPacket(Application.getLocalDevice(), clientDevice, Message.SET_LEFT_NEIGHBOUR_OK, null, null);
            } else {
                returnPacket = new DataPacket(Application.getLocalDevice(), clientDevice, Message.SET_LEFT_NEIGHBOUR_DENIED, null, null);
            }
            clientWriter.writeObject(returnPacket);
            break;
        case SET_RIGHT_NEIGHBOUR:
            if (PairingHandler.getInstance().setLeft(dataPacket.SENDER)) {
                returnPacket = new DataPacket(Application.getLocalDevice(), clientDevice, Message.SET_RIGHT_NEIGHBOUR_OK, null, null);
            } else {
                returnPacket = new DataPacket(Application.getLocalDevice(), clientDevice, Message.SET_RIGHT_NEIGHBOUR_DENIED, null, null);
            }
            clientWriter.writeObject(returnPacket);
            break;
        case SET_LEFT_NEIGHBOUR_FAILURE:
            PairingHandler.getInstance().setLeft(dataPacket.SENDER, Message.SET_LEFT_NEIGHBOUR_FAILURE);
            break;
        case SET_RIGHT_NEIGHBOUR_FAILURE:
            PairingHandler.getInstance().setLeft(dataPacket.SENDER, Message.SET_RIGHT_NEIGHBOUR_FAILURE);
            break;
        case GET_INFO:
            returnPacket = new DataPacket(Application.getLocalDevice(), clientDevice, Message.GET_INFO_OK, null, null);
            clientWriter.writeObject(returnPacket);
            break;
        case UPDATE_ROUTING_TABLE:
            break;
        default:
            break;
    }
    if (returnPacket != null)
        Logger.info("LocalClient - Sent message to " + returnPacket.RECEIVER.ipAddress + ":" + returnPacket.MESSAGE.name());
    else
        Logger.info("LocalClient - Did not send a response to " + dataPacket.SENDER.ipAddress);
}

[Buggy Hunk]
PairingHandler.getInstance().setLeft(dataPacket.SENDER, Message.SET_LEFT_NEIGHBOUR_FAILURE);

[Patch]
PairingHandler.getInstance().setRight(dataPacket.SENDER, Message.SET_LEFT_NEIGHBOUR_FAILURE);

[Demonstration 3]

[Buggy Method]
@Override
public Packet getDescriptionPacket() {
    NBTTagCompound nbt = getTileData();
    writeToNBT(nbt);
    return new S35PacketUpdateTileEntity(this.pos, getBlockMetadata(), nbt);
}

[Buggy Hunk]
NBTTagCompound nbt = getTileData();

[Patch]
NBTTagCompound nbt = new NBTTagCompound();