[Demonstration 1]

[Buggy Method]
public void msort(Buffer a, int lo, int hi, Comparator<? super K> c, Integer[] starts, Integer[] lengths) {
    assert c != null;
    assert starts.length == lengths.length;
    assert starts[starts.length - 1] + lengths[lengths.length - 1] == hi - 1;
    int nRemaining = hi - lo;
    if (nRemaining < 2)
        // Arrays of size 0 and 1 are always sorted
        return;
    // If array is small, do a "mini-TimSort" with no merges
    if (nRemaining < MIN_MERGE) {
        int initRunLen = countRunAndMakeAscending(a, lo, hi, c);
        binarySort(a, lo, hi, lo + initRunLen, c);
        return;
    }
    /**
     * March over the array once, left to right, finding natural runs,
     * extending short natural runs to minRun elements, and merging runs
     * to maintain stack invariant.
     */
    SortState sortState = new SortState(a, c, hi - lo);
    // Push all runs onto pending-run stack one by one, and maybe merge
    // this differs from the original sort for no need to identify runs
    for (int i = 0; i < starts.length; i++) {
        sortState.pushRun(starts[i], lengths[i]);
        sortState.mergeCollapse();
    }
    // Merge all remaining runs to complete sort
    sortState.mergeForceCollapse();
    assert sortState.stackSize == 1;
}

[Buggy Hunk]
assert starts[starts.length - 1] + lengths[lengths.length - 1] == hi - 1;

[Patch]
assert starts[starts.length - 1] + lengths[lengths.length - 1] == hi;

[Demonstration 2]

[Buggy Method]
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    if (mAdapter.getItem(position).equals("          Home")) {
        Intent i = new Intent(getApplicationContext(), Anomaly.class);
        userProfile = getIntent().getStringExtra("profile");
        i.putExtra("profile", userProfile);
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(i);
    } else if (mAdapter.getItem(position).equals("          Reports")) {
        Intent i = new Intent(getApplicationContext(), Reports.class);
        userProfile = getIntent().getStringExtra("profile");
        i.putExtra("profile", userProfile);
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(i);
    } else if (mAdapter.getItem(position).equals("          Logout")) {
        Toast.makeText(ComparisonsReports.this, "Logged out", Toast.LENGTH_SHORT).show();
        SaveSharedPreference.clearUserName(getApplicationContext());
        Intent i = new Intent(getApplicationContext(), Login.class);
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(i);
    } else if (mAdapter.getItem(position).equals("          Subscription")) {
        Intent i = new Intent(getApplicationContext(), Reports.class);
        startActivity(i);
    } else {
        Toast.makeText(ComparisonsReports.this, "Error On Calling", Toast.LENGTH_SHORT).show();
    }
}

[Buggy Hunk]
Intent i = new Intent(getApplicationContext(), Reports.class);

[Patch]
Intent i = new Intent(getApplicationContext(), SubscribeActivity.class);

[Demonstration 3]

[Buggy Method]
public CTable Load(String tableName) {
    try {
        DefaultTableModel tm = new DefaultTableModel();
        String value;
        // Run query
        String SQL = String.format("SELECT * FROM '%s'", tableName);
        ResultSet rs = conn.createStatement().executeQuery(SQL);
        rsmd = rs.getMetaData();
        int i = -1;
        // get number of columns
        int numOfCols = rsmd.getColumnCount();
        // populate data
        while (rs.next()) {
            i++;
            tm.addRow(new Vector<String>());
            for (int j = 1; j < numOfCols; j++) {
                // populate column headers
                if (i == 0) {
                    tm.addColumn(rsmd.getColumnName(j));
                }
                value = rs.getString(j);
                // Quick data-scrub
                if (value.equalsIgnoreCase("--")) {
                    value = "0";
                }
                tm.setValueAt(value, i, j - 1);
            }
        }
        return new CTable(tableName, tm);
    } catch (SQLException ex) {
        Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex);
    }
    return null;
}

[Buggy Hunk]
for(int j = 1; j < numOfCols; j++){

[Patch]
for(int j = 1; j <= numOfCols; j++){