[Demonstration 1]

[Buggy Method]
public static void makeCritter(String critter_class_name) throws InvalidCritterException {
    try {
        Class<?> c = Class.forName(critter_class_name);
        Constructor cCon = c.getConstructor();
        Object obj = cCon.newInstance();
        Critter newCritter = (Critter) obj;
        newCritter.x_coord = getRandomInt(Params.world_width);
        newCritter.y_coord = getRandomInt(Params.world_height);
        newCritter.energy = Params.start_energy;
        population.add(newCritter);
    } catch (NoSuchMethodException | InstantiationException | InvocationTargetException | IllegalAccessException | ClassNotFoundException e) {
        throw new InvalidCritterException(critter_class_name);
    }
}

[Buggy Hunk]
Class<?> c = Class.forName(critter_class_name);

[Patch]
Class<?> c = Class.forName("assignment4." + critter_class_name);

[Demonstration 2]

[Buggy Method]
private String getRuntimeDefinition(RuntimeDefinition rd) {
    final DatumWriter<RuntimeDefinition> configurationWriter = new SpecificDatumWriter<>(RuntimeDefinition.class);
    final String serializedConfiguration;
    try (final ByteArrayOutputStream out = new ByteArrayOutputStream()) {
        final JsonEncoder encoder = EncoderFactory.get().jsonEncoder(RuntimeDefinition.SCHEMA$, out);
        configurationWriter.write(rd, encoder);
        encoder.flush();
        out.flush();
        serializedConfiguration = out.toString("ISO-8859-1");
    } catch (final IOException e) {
        throw new RuntimeException(e);
    }
    return serializedConfiguration;
}

[Buggy Hunk]
private String getRuntimeDefinition(RuntimeDefinition rd) {

[Patch]
private String getRuntimeDefinition(final RuntimeDefinition rd) {

[Demonstration 3]

[Buggy Method]
public static void serializeToFile(Object object, File file) {
    try (OutputStream os = new FileOutputStream(file)) {
        Kryo kryo = new Kryo();
        Output output = new Output(os);
        kryo.writeObject(output, object);
        output.flush();
    } catch (Exception e) {
        throw new WrappedRuntimeException(e);
    }
}

[Buggy Hunk]
Kryo kryo = new Kryo();

[Patch]
Kryo kryo = newKryo();