[Demonstration 1]

[Buggy Method]
protected void onSessionStateChange(Session session, SessionState state, Exception exception) {
    if (session != null && session.isOpened()) {
        logAndShowOnScreen("\nLogged in. Getting user details.");
        Request request = Request.newMeRequest(session, new Request.GraphUserCallback() {

            @Override
            public void onCompleted(GraphUser user, Response response) {
                if (user != null) {
                    System.out.println("onSessionStateChange: LoadNotes: session is open. username:" + user.getName());
                    loadNotes(getActivity(), getLoggedInUsername());
                }
            }
        });
        Request.executeBatchAsync(request);
    } else {
        logAndShowOnScreen("\nUser not already logged in.");
        System.out.println("onSessionStateChange: LoadNotes: session was closed.");
        loadNotes(getActivity(), getLoggedInUsername());
    }
}

[Buggy Hunk]
loadNotes(getActivity(), getLoggedInUsername());

[Patch]
loadNotes(getActivity(), user.getId());

[Demonstration 2]

[Buggy Method]
private String loadFile(String filename) {
    File file = new File(getBirdblocksDir(), filename);
    if (!file.exists()) {
        return FILE_NOT_FOUND_RESPONSE;
    }
    StringBuilder response = new StringBuilder();
    try {
        BufferedReader reader = new BufferedReader(new FileReader(file));
        String line;
        while ((line = reader.readLine()) != null) {
            response.append(line + "\n");
        }
    } catch (FileNotFoundException e) {
        return FILE_NOT_FOUND_RESPONSE;
    } catch (IOException e) {
        Log.d(TAG, "Error reading saved file: " + e.toString());
    }
    return response.toString().trim();
}

[Buggy Hunk]
File file = new File(getBirdblocksDir(), filename);

[Patch]
File file = new File(getBirdblocksDir(), filename + ".bbx");

[Demonstration 3]

[Buggy Method]
@Override
public Collection<ImportResult> handleFileImport(String file, @Nullable final String resolveKey) {
    List<ImportResult> results = Lists.newArrayList();
    String[] keys = header();
    try {
        BufferedReader reader = new BufferedReader(new FileReader(file));
        String line;
        while ((line = reader.readLine()) != null) {
            if (keys == null) {
                keys = parseHeader(line);
                log.info("Processed header: " + line);
            } else {
                Multimap<String, String> data = parseLine(line, keys);
                ImportResult result = importGroup(data, resolveKey);
                results.add(result);
                log.info(MessageFormat.format("Imported {0} into record(s) {1} with {2} error(s)", line, result.getRecords(), result.getErrorCount()));
            }
        }
        reader.close();
        return results;
    } catch (Exception e) {
        throw Throwables.propagate(e);
    }
}

[Buggy Hunk]
BufferedReader reader = new BufferedReader(new FileReader(file));

[Patch]
BufferedReader reader = new BufferedReader(new FileReader(FileUtility.expandPath(file)));