[Demonstration 1]

[Buggy Method]
private void addNodeInfo(GFDnetResult result) {
    CyTable nodeTable = network.getDefaultNodeTable();
    try {
        nodeTable.createColumn(GOTermColumn, String.class, false);
    } catch (IllegalArgumentException ex) {
        // Do nothing and just override the values in the collumn
    }
    try {
        nodeTable.createColumn(GOTermDescColumn, String.class, false);
    } catch (IllegalArgumentException ex) {
        // Do nothing and just override the values in the collumn
    }
    try {
        nodeTable.createListColumn(GOTermsColumn, String.class, false);
    } catch (IllegalArgumentException ex) {
        // Do nothing and just override the values in the collumn
    }
    geneRows = new Object[result.getAnalyzedGenes().size()][3];
    int i = 0;
    for (GeneInput gene : result.getAnalyzedGenes()) {
        for (CyRow row : nodeTable.getAllRows()) {
            if (row.get(CyNetwork.NAME, String.class).equalsIgnoreCase(gene.getName())) {
                row.set(GOTermColumn, gene.getSelectedGOTerm().getName());
                row.set(GOTermDescColumn, gene.getSelectedGOTerm().getDescription());
                Set<GOTerm> goTerms = gene.getGoTerms(result.getOntology());
                List<String> goTermsDisplayList = new ArrayList<String>(goTerms.size());
                for (GOTerm goTerm : goTerms) {
                    goTermsDisplayList.add(goTerm.getName());
                }
                row.set(GOTermsColumn, goTermsDisplayList);
                break;
            }
        }
        Object[] row = { gene.getName(), gene.getSelectedGOTerm().getName(), gene.getSelectedGOTerm().getDescription() };
        geneRows[i] = row;
        i++;
    }
    for (String gene : result.getUnkownGenes()) {
        for (CyRow row : nodeTable.getAllRows()) {
            if (row.get(CyNetwork.NAME, String.class).equalsIgnoreCase(gene)) {
                row.set(GOTermColumn, Unknown);
                break;
            }
        }
        Object[] row = { gene, Unknown, Unknown };
        geneRows[i] = row;
        i++;
    }
    for (GeneInput gene : result.getUnannotatednGenes()) {
        for (CyRow row : nodeTable.getAllRows()) {
            if (row.get(CyNetwork.NAME, String.class).equalsIgnoreCase(gene.getName())) {
                row.set(GOTermColumn, Unnanotated);
                break;
            }
        }
        Object[] row = { gene.getName(), Unnanotated, Unnanotated };
        geneRows[i] = row;
        i++;
    }
}

[Buggy Hunk]
geneRows = new Object[result.getAnalyzedGenes().size()][3];

[Patch]
geneRows = new Object[result.getAnalyzedGenes().size() + result.getUnkownGenes().size() + result.getUnannotatednGenes().size()][3];

[Demonstration 2]

[Buggy Method]
@Override
public Object[][] getToolMetricsForHomePage(Date start, Date end) {
    Map<String, Integer> results = new HashMap<String, Integer>();
    for (TestRun r : testRunRepository.findByDateRange(start, end)) {
        TestSuite suite = testSuiteRepository.findByid(r.getTestSuite().getId());
        TestTool tool = testToolRepository.findByid(suite.getTestTool().getId());
        if (!results.containsKey(tool.getId().intValue())) {
            results.put(tool.getName(), tool.getGeneratedDataCount().intValue());
        }
    }
    Object[][] result = new Object[results.size()][2];
    int i = 0;
    result[i][0] = "Name";
    result[i][1] = "Number of Data Items";
    for (Entry<String, Integer> e : results.entrySet()) {
        i++;
        result[i][0] = e.getKey();
        result[i][1] = e.getValue();
    }
    return result;
}

[Buggy Hunk]
Object[][] result = new Object[results.size()][2];

[Patch]
Object[][] result = new Object[results.size()+1][2];

[Demonstration 3]

[Buggy Method]
public static void main(String[] args) {
    System.out.println("Please input a number you would like the characteristics of to be checked.");
    //the number that is checked
    double targetNumber = Keyboard.getInteger();
    //test object used to test class
    CheckNumber test1 = new CheckNumber();
    System.out.println("The number " + targetNumber + " is " + ((test1.isPrime(targetNumber) == true) ? "" : "not ") + "a prime number.");
    System.out.println("The number " + targetNumber + " is " + ((test1.isPositive(targetNumber) == true) ? "" : "not ") + "a positive number.");
    System.out.println("The number " + targetNumber + " is " + ((test1.isNegative(targetNumber) == true) ? "" : "not ") + "a negative number.");
    System.out.println("The number " + targetNumber + " is " + ((test1.ispalindrome(targetNumber) == true) ? "" : "not ") + "a palindrome.");
    System.out.println(test1.displayNumberChararacteristics(targetNumber));
}

[Buggy Hunk]
double targetNumber = Keyboard.getInteger(); //the number that is checked

[Patch]
int targetNumber = Keyboard.getInteger(); //the number that is checked