[Demonstration 1]

[Buggy Method]
private Optional<String> getTypeString(final Source src, @Nullable final Type type) {
    if (type == null) {
        return Optional.empty();
    }
    if (type instanceof Type.CapturedType) {
        final Type.CapturedType capturedType = (Type.CapturedType) type;
        final Type.WildcardType wildcardType = capturedType.wildcard;
        if (wildcardType.kind.toString().equals("?")) {
            final Type upperBound = type.getUpperBound();
            final String s = upperBound.tsym.flatName().toString();
            return Optional.of(s);
        }
        final String s = wildcardType.kind.toString() + wildcardType.type.tsym.flatName().toString();
        return Optional.of(s);
    } else if (type instanceof Type.ArrayType) {
        final Type.ArrayType arrayType = (Type.ArrayType) type;
        final Type componentType = arrayType.getComponentType();
        if (componentType != null && componentType.tsym != null) {
            final String s = componentType.tsym.toString();
            return Optional.of(s);
        }
        return Optional.empty();
    } else if (type instanceof Type.WildcardType) {
        final Type.WildcardType wildcardType = (Type.WildcardType) type;
        if (wildcardType.type != null) {
            if (wildcardType.kind.toString().equals("?")) {
                final String s = wildcardType.type.tsym.flatName().toString();
                return Optional.of(s);
            }
            final String s = wildcardType.kind.toString() + wildcardType.type.tsym.flatName().toString();
            return Optional.of(s);
        }
        return Optional.empty();
    } else if (type instanceof Type.MethodType) {
        final Type.MethodType methodType = (Type.MethodType) type;
        final Type returnType = methodType.getReturnType();
        String baseType = returnType.tsym.flatName().toString();
        final List<Type> typeArguments = returnType.getTypeArguments();
        baseType = getFlatName(src, baseType, typeArguments);
        return Optional.of(baseType);
    } else {
        if (type.toString().equals("?")) {
            return Optional.of(ClassNameUtils.OBJECT_CLASS);
        }
        String baseType = type.tsym.flatName().toString();
        if (baseType.equals("Array")) {
            return Optional.of(ClassNameUtils.OBJECT_CLASS + ClassNameUtils.ARRAY);
        }
        if (baseType.equals("Method")) {
            return Optional.empty();
        }
        final List<Type> typeArguments = type.getTypeArguments();
        baseType = getFlatName(src, baseType, typeArguments);
        return Optional.of(baseType);
    }
}

[Buggy Hunk]
final String s = componentType.tsym.toString();

[Patch]
final String s = arrayType.toString();

[Demonstration 2]

[Buggy Method]
private static String hash(String mac) {
    if (mac == null || mac.isEmpty()) {
        return null;
    }
    String ret;
    try {
        final MessageDigest md = MessageDigest.getInstance("SHA-256");
        final byte[] bytes = mac.getBytes("UTF-8");
        md.update(bytes);
        final byte[] bytesAfterDigest = md.digest();
        final StringBuffer sb = new StringBuffer();
        for (int i = 0; i < bytesAfterDigest.length; i++) {
            sb.append(Integer.toString((bytesAfterDigest[i] & 0xff) + 0x100, 16).substring(1));
        }
        ret = sb.toString();
    } catch (NoSuchAlgorithmException ex) {
        return null;
    } catch (UnsupportedEncodingException ex) {
        return null;
    }
    return ret;
}

[Buggy Hunk]
final StringBuffer sb = new StringBuffer();

[Patch]
final StringBuilder sb = new StringBuilder();

[Demonstration 3]

[Buggy Method]
@Override
public void loop() {
    leftDrive.setPower(gamepad1.right_stick_y);
    rightDrive.setPower(gamepad1.left_stick_y);
    if (gamepad1.right_trigger > 0) {
        gatheringMotor.setPower(gamepad1.right_trigger);
    } else if (gamepad1.left_trigger > 0) {
        gatheringMotor.setPower(-gamepad1.left_trigger);
    } else {
        gatheringMotor.setPower(0.0);
    }
    if (gamepad2.left_stick_y > 0) {
        liftMotor.setPower(0.25 * gamepad2.left_stick_y);
    } else if (gamepad2.left_stick_y < 0) {
        liftMotor.setPower(gamepad2.left_stick_y);
    } else {
        liftMotor.setPower(0.0);
    }
    if (gamepad2.right_bumper) {
        launcherMotor.setPower(1.0);
    } else if (gamepad2.left_bumper) {
        launcherMotor.setPower(0.4);
    } else {
        launcherMotor.setPower(0.0);
    }
    if (gamepad1.right_bumper) {
        dropperServo.setPosition(1);
    } else if (gamepad1.left_bumper) {
        dropperServo.setPosition(0.5);
    }
    if (gamepad1.dpad_right || gamepad2.dpad_right) {
        rightServo.setPosition(0.0);
    } else {
        rightServo.setPosition(1.0);
    }
    if (gamepad1.dpad_left || gamepad2.dpad_left) {
        leftServo.setPosition(1.0);
    } else {
        leftServo.setPosition(0.0);
    }
    if (gamepad1.x) {
        encoderDistance(elevatorMotor, 1120, 0.5);
    } else {
    }
    diagnostic.gamepad1All();
    diagnostic.gamepad2All();
    /*try {
            Thread.sleep(15);
        } catch (InterruptedException e) {
        }*/
}

[Buggy Hunk]
launcherMotor.setPower(1.0);

[Patch]
launcherMotor.setPower(-1.0);