[Demonstration 1]

[Buggy Method]
public void visit(ParamList pl) {
    for (int i = 0; i < pl.length; i++) {
        Symboll id = pl.getSymbol(i);
        Type type = pl.getType(i);
        id = new Symboll(type.ty, id.name, id.array, false, i, id.line, id.pos);
        pl.replaceSymbol(i, id);
        current.addBind(id.name, id);
    }
}

[Buggy Hunk]
id = new Symboll(type.ty, id.name, id.array, false, i, id.line, id.pos);

[Patch]
id = new Symboll(type.ty, id.name, id.array, false, i, id.line, id.pos, false);

[Demonstration 2]

[Buggy Method]
@Override
public int hashCode() {
    return name.hashCode();
}

[Buggy Hunk]
return name.hashCode();

[Patch]
return id.hashCode();

[Demonstration 3]

[Buggy Method]
@Test
void defineAnonymousClass() {
    Class<?> clazz = new SunUnsafeClassLoader().defineAnonymousClass(getClass(), CLASS_BYTES, new Object[0]);
    assertTrue(clazz.isAnonymousClass());
    assertEquals(getClass(), clazz.getEnclosingClass());
    assertNull(clazz.getName());
    testInstantiation(clazz);
}

[Buggy Hunk]
void defineAnonymousClass() {

[Patch]
void defineAnonymousClass() throws InstantiationException, IllegalAccessException {