[Demonstration 1]

[Buggy Method]
private static void listSalientFiles(String workingDir, String project, int compressionRatio, int backoffTopic, File outFolder, String samplerLoc, Boolean ignoreTestFiles) {
    final Settings set = new Settings();
    // Main code folder settings
    set.backoffTopicID = backoffTopic;
    set.curProj = project;
    set.compressionRatio = compressionRatio;
    // Load Topic Model
    System.out.println("Deserializing the model...");
    final GibbsSampler sampler = GibbsSampler.readCorpus(samplerLoc + "TopicSum/Source/SamplerState.ser");
    // Get all java files in source folder
    final List<File> files = (List<File>) FileUtils.listFiles(new File(workingDir + project + "/"), new String[] { "java" }, true);
    int count = 0;
    List<FileScore> fileScores = new ArrayList<ListSalientFiles.FileScore>();
    for (final File file : files) {
        // Ignore empty files
        if (file.length() == 0)
            continue;
        if (count % 50 == 0)
            System.out.println("At file " + count + " of " + files.size());
        count++;
        List<String> lines = CodeUtils.getTokenList(file, set);
        List<Integer> lineNumbers = new ArrayList<Integer>();
        for (int i = 0; i < lines.size(); i++) {
            lineNumbers.add(i);
        }
        final String curFile = StringUtils.removeStart(file.getPath(), workingDir + project + "/");
        Double klScore = -1 * sampler.getKLDiv("KLDivProj", set.backoffTopicID, set.curProj, curFile, lineNumbers);
        fileScores.add(new FileScore(file.getPath(), klScore));
    }
    if (ignoreTestFiles) {
        Iterator<FileScore> iter = fileScores.iterator();
        while (iter.hasNext()) {
            String filePath = iter.next().filePath;
            if (filePath.contains("test") || filePath.contains("Test")) {
                iter.remove();
            }
        }
    }
    int desiredNumberOfFiles = fileScores.size() * compressionRatio / 100;
    System.out.println("===============================================================");
    System.out.println("Listing salient files for project: " + project);
    System.out.println("Total files: " + fileScores.size() + "\t" + " Reducing to: " + desiredNumberOfFiles);
    System.out.println("===============================================================");
    Collections.sort(fileScores);
    int i = 0;
    for (i = 0; i < desiredNumberOfFiles; i++) {
        System.out.println(fileScores.get(i).score + "\t" + fileScores.get(i).filePath);
    }
    System.out.println("\n \n===============================================================");
    System.out.println("Next 20 important files :");
    System.out.println("===============================================================");
    for (int j = 0; i < fileScores.size() && j < 20; j++, i++) {
        System.out.println(fileScores.get(i).score + "\t" + fileScores.get(i).filePath);
    }
}

[Buggy Hunk]
final String curFile = StringUtils.removeStart(file.getPath(), workingDir + project + "/");

[Patch]
final String curFile = CodeUtils.getRelativePath(file, project);

[Demonstration 2]

[Buggy Method]
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    // int id = item.getItemId();
    switch(item.getItemId()) {
        case android.R.id.home:
            // app icon in action bar clicked; goto parent activity.
            this.finish();
            return true;
        case R.id.action_settings:
            return true;
        case 11:
            if (saveData(savePhoto())) {
                Intent intent = new Intent(getApplicationContext(), TripExpMan.class);
                intent.putExtra("ORIGIN", "EXPENSE");
                intent.putExtra("CLIENT", selectedClient.getId().toString());
                startActivity(intent);
            }
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
    //return super.onOptionsItemSelected(item);
}

[Buggy Hunk]
if(saveData(savePhoto())) {

[Patch]
if(saveData()) {

[Demonstration 3]

[Buggy Method]
@Override
public Color getColor() {
    EditorToolMode mode = getOwner().getMode();
    if (mode == EditorToolMode.Point || mode == EditorToolMode.Edge || mode == EditorToolMode.DeletePoint) {
        if (selected == this) {
            return Color.yellow;
        }
    } else {
        return Color.red;
    }
    return super.getColor();
}

[Buggy Hunk]
if(mode == EditorToolMode.Point || mode == EditorToolMode.Edge || mode == EditorToolMode.DeletePoint)

[Patch]
if(mode == EditorToolMode.Point || mode == EditorToolMode.Edge || mode == EditorToolMode.DeletePoint || mode == EditorToolMode.None)