[Demonstration 1]

[Buggy Method]
public static BoundingBox getHitbox(Entity entity) {
    if (entity == null) {
        return null;
    }
    BoundingBox hitbox = hitboxes.get(entity.getType());
    if (hitbox != null) {
        return hitbox.center(entity.getLocation().toVector());
    }
    try {
        Object entityHandle = getHandle(entity);
        Object aabb = class_Entity_getBoundingBox.invoke(entityHandle);
        if (aabb == null) {
            return defaultHitbox.center(entity.getLocation().toVector());
        }
        return new BoundingBox(class_AxisAlignedBB_minXField.getDouble(aabb), class_AxisAlignedBB_maxXField.getDouble(aabb), class_AxisAlignedBB_minYField.getDouble(aabb), class_AxisAlignedBB_maxYField.getDouble(aabb), class_AxisAlignedBB_minZField.getDouble(aabb), class_AxisAlignedBB_maxZField.getDouble(aabb)).scale(hitboxScale);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return defaultHitbox.center(entity.getLocation().toVector());
}

[Buggy Hunk]
Object aabb = class_Entity_getBoundingBox.invoke(entityHandle);

[Patch]
Object aabb = class_Entity_boundingBoxField.get(entityHandle);

[Demonstration 2]

[Buggy Method]
public void createUser() throws AerospikeException {
    console.printf("\n********** Create User **********\n");
    ///*********************///
    ///*****Data Model*****///
    //Namespace: test
    //Set: users
    //Key: <username>
    //Bins:
    //username - String
    //password - String (For simplicity password is stored in plain-text)
    //gender - String (Valid values are 'm' or 'f')
    //region - String (Valid values are: 'n' (North), 's' (South), 'e' (East), 'w' (West) -- to keep data entry to minimal we just store the first letter)
    //lasttweeted - int (Stores epoch timestamp of the last/most recent tweet) -- Default to 0
    //tweetcount - int (Stores total number of tweets for the user) -- Default to 0
    //interests - Array of interests
    //Sample Key: dash
    //Sample Record:
    //{ username: 'dash',
    //  password: 'dash',
    //  gender: 'm',
    //  region: 'w',
    //  lasttweeted: 1408574221,
    //  tweetcount: 20,
    //  interests: ['photography', 'technology', 'dancing', 'house music]
    //}
    ///*********************///
    String username;
    String password;
    String gender;
    String region;
    String interests;
    // Get username
    console.printf("Enter username: ");
    username = console.readLine();
    if (username != null && username.length() > 0) {
        // Get password
        console.printf("Enter password for " + username + ":");
        password = console.readLine();
        // Get gender
        console.printf("Select gender (f or m) for " + username + ":");
        gender = console.readLine().substring(0, 1);
        // Get region
        console.printf("Select region (north, south, east or west) for " + username + ":");
        region = console.readLine().substring(0, 1);
        // Get interests
        console.printf("Enter comma-separated interests for " + username + ":");
        interests = console.readLine();
        // Write record
        WritePolicy wPolicy = new WritePolicy();
        wPolicy.recordExistsAction = RecordExistsAction.UPDATE;
        Key key = new Key("test", "users", username);
        Bin bin1 = new Bin("username", username);
        Bin bin2 = new Bin("password", password);
        Bin bin3 = new Bin("gender", gender);
        Bin bin4 = new Bin("region", region);
        Bin bin5 = new Bin("lasttweeted", 0);
        Bin bin6 = new Bin("tweetcount", 0);
        Bin bin7 = Bin.asList("interests", Arrays.asList(interests.split(",")));
        client.put(wPolicy, key, bin1, bin2, bin3, bin4, bin5, bin6, bin7);
        console.printf("\nINFO: User record created!");
    }
}

[Buggy Hunk]
Bin bin7 = Bin.asList("interests", Arrays.asList(interests.split(",")));

[Patch]
Bin bin7 = new Bin("interests", Arrays.asList(interests.split(",")));