[Demonstration 1]

[Buggy Method]
public void setUpExpensesListView(final String dateToCompare) {
    expenses.clear();
    final SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
    final SimpleDateFormat timeFormat = new SimpleDateFormat("hh:mm a");
    ParseQuery<ParseObject> query = new ParseQuery("Expenses");
    query.whereEqualTo("username", ParseUser.getCurrentUser().getUsername());
    query.findInBackground(new FindCallback<ParseObject>() {

        @Override
        public void done(List<ParseObject> objects, ParseException e) {
            expensesList = (ListView) getActivity().findViewById(R.id.expensesList);
            if (objects.size() != 0) {
                for (ParseObject object : objects) {
                    String date = df.format(object.getDate("time"));
                    if (date.equals(dateToCompare)) {
                        ExpenseListItem temp = new ExpenseListItem(Float.parseFloat(object.getNumber("amount").toString()), object.getString("location"), timeFormat.format(object.getDate("time")), object.getString("category"), object.getString("method"));
                        expenses.add(temp);
                    }
                }
                expenseListAdapter = new ExpenseListAdapter(getActivity(), R.layout.layout_list_swipe, expenses, fragmentManager);
                expensesList.setAdapter(expenseListAdapter);
                expenseListAdapter.notifyDataSetChanged();
            }
            if (objects.size() == 0 || expenses.size() == 0) {
                ArrayList<String> temp = new ArrayList<String>();
                temp.add("Error message");
                myAdapter = new MyAdapter(getContext(), R.layout.layout_list_unavailable, temp);
                expensesList.setAdapter(myAdapter);
                myAdapter.notifyDataSetChanged();
            }
            setUpStats(dateToCompare);
        }
    });
}

[Buggy Hunk]
object.getString("category"), object.getString("method"));

[Patch]
object.getString("category"), object.getString("method"), object.getDate("time"));

[Demonstration 2]

[Buggy Method]
public ArrayList<FormData> createYearDataSet() {
    ArrayList<FormData> yearDataSet = new ArrayList<FormData>();
    Hashtable<Long, UserSet> ds = dp.getDateDataSet().getDateSet();
    Calendar cdr = Calendar.getInstance();
    cdr.setTime(dateField.getDate());
    for (int i = 1; i <= 12; i++) {
        FormData fd = new FormData();
        cdr.set(Calendar.MONTH, i);
        cdr.set(Calendar.DAY_OF_MONTH, 1);
        long lowLimit = cdr.getTimeInMillis();
        cdr.set(Calendar.DAY_OF_MONTH, cdr.getActualMaximum(Calendar.DAY_OF_MONTH));
        long upLimit = cdr.getTimeInMillis();
        long dur = 0;
        for (long day = lowLimit; day <= upLimit; day = day + 24 * 3600 * 1000) {
            UserSet us = ds.get(day);
            if (us != null) {
                for (UserInfo u : us.getList()) {
                    dur += u.getDuration();
                }
            }
        }
        dur /= 1000;
        fd.setxAxisData(i);
        fd.setyAxisData(dur);
        yearDataSet.add(fd);
    }
    return yearDataSet;
}

[Buggy Hunk]
cdr.set(Calendar.MONTH, i);

[Patch]
cdr.set(Calendar.MONTH, i - 1);

[Demonstration 3]

[Buggy Method]
public void saveMethod(View view) {
    Schedule cl = new Schedule();
    cl.setClassName(name.toString());
    cl.setStartDate(stringToDate(date_start.toString()));
    cl.setEndDate(stringToDate(date_end.toString()));
    int[] tem = stringToTime(time_end.toString());
    cl.setStartHour(tem[0]);
    cl.setStartMin(tem[1]);
    int[] tem2 = stringToTime(time_start.toString());
    cl.setEndHour(tem2[0]);
    cl.setEndMin(tem2[1]);
    classData.add(cl);
}

[Buggy Hunk]
classData.add(cl);

[Patch]
MainActivity.classSchedule.add(cl);