[Demonstration 1]

[Buggy Method]
@Test
public void whenGetTempFolderThenObtainCorrectFolderInProjectTempFolder() throws Exception {
    assertThat(foldersLocator.getDefaultTempFolder()).isEqualTo(temp);
}

[Buggy Hunk]
assertThat(foldersLocator.getDefaultTempFolder()).isEqualTo(temp);

[Patch]
assertThatFile(foldersLocator.getDefaultTempFolder()).isEqualTo(temp);

[Demonstration 2]

[Buggy Method]
@Override
public boolean unregister(@NonNull FingerLockResultCallback listener) {
    if (mCallback == listener) {
        mCallback = null;
        mContext = null;
        stop();
        Log.e(TAG, "unregister: OK");
        return true;
    }
    return false;
}

[Buggy Hunk]
Log.e(TAG, "unregister: OK");

[Patch]
if(BuildConfig.DEBUG) Log.d(TAG, "unregister: OK");

[Demonstration 3]

[Buggy Method]
private ParsedType doParse(Declaration declaration, Optional<Class> specificClass) {
    Map<String, Declaration> thisEffectiveParameters = declaration.getParameters();
    Type[] superInterfaces = specificClass.get().getGenericInterfaces();
    Map<Class, ParsedType> superDeclarations = new HashMap<>();
    for (Type genericInterface : superInterfaces) {
        TypeResolution superTypeResolution = typeResolution(genericInterface);
        if (superTypeResolution.getParameterizedType().isPresent()) {
            Map<String, Declaration> superParameters = extractParameters(superTypeResolution, thisEffectiveParameters);
            ParsedType superInterface = parse(superTypeResolution, superParameters);
            superDeclarations.put(superTypeResolution.getSpecificClass().get(), superInterface);
        }
    }
    return new ParsedType(declaration, flatten(superDeclarations));
}

[Buggy Hunk]
Map<String, Declaration> superParameters = extractParameters(superTypeResolution, thisEffectiveParameters);

[Patch]
Map<String, Declaration> superParameters = extractParameters(superTypeResolution, declaration.getTypeResolution().getParameterizedType(), thisEffectiveParameters);