[Demonstration 1]

[Buggy Method]
public void schedule(View view) {
    if (calendar.before(Calendar.getInstance())) {
        Toast.makeText(this, R.string.invalid_date_time, Toast.LENGTH_LONG).show();
        return;
    }
    Intent sendMessageIntent = getIntent().getParcelableExtra(SEND_MESSAGE);
    Intent notificationIntent = new Intent(this, MessageSender.class);
    notificationIntent.putExtra(MSG, txtMessage.getText().toString());
    notificationIntent.putExtra(SEND_MESSAGE, sendMessageIntent);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTime().getTime(), pendingIntent);
    finish();
    Toast.makeText(this, R.string.message_scheduled, Toast.LENGTH_LONG).show();
}

[Buggy Hunk]
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

[Patch]
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, currentTimeMillis(), notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

[Demonstration 2]

[Buggy Method]
private void setAppointmentDateTime(int i, Date date, long startTime, long endTime, int visitDuration) {
    Calendar calendar1 = Calendar.getInstance();
    calendar1.setTime(date);
    long appointmentTime = startTime + i * visitDuration * 60 * 1000;
    Calendar calendar2 = Calendar.getInstance();
    calendar2.setTimeInMillis(appointmentTime);
    calendar2.set(Calendar.YEAR, calendar1.get(Calendar.YEAR));
    calendar2.set(Calendar.MONTH, calendar1.get(Calendar.MONTH));
    calendar2.set(Calendar.DAY_OF_MONTH, calendar1.get(Calendar.DAY_OF_MONTH));
    date = calendar2.getTime();
}

[Buggy Hunk]
date = calendar2.getTime();

[Patch]
this.date = calendar2.getTime();

[Demonstration 3]

[Buggy Method]
private Date getDateAsSqlDateTime(String dateStr, String timeStr) {
    boolean isAM = true;
    String[] hoursSplit = timeStr.split(":");
    int dayHours = Integer.parseInt(hoursSplit[0]);
    if (hoursSplit[1].contains("pm"))
        isAM = false;
    int minute = Integer.parseInt(hoursSplit[1].split("[a-z]")[0]);
    int hourOfDay = (isAM) ? dayHours : dayHours + 12;
    String[] dateSplit = dateStr.split("/");
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.MONTH, Integer.parseInt(dateSplit[0]) - 1);
    cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dateSplit[1]));
    cal.set(Calendar.YEAR, Integer.parseInt(dateSplit[2]));
    cal.set(Calendar.HOUR_OF_DAY, hourOfDay);
    cal.set(Calendar.MINUTE, minute);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);
    Date date = new Date(cal.getTimeInMillis());
    return date;
}

[Buggy Hunk]
if(hoursSplit[1].contains("pm"))

[Patch]
if(hoursSplit[1].contains("pm") && dayHours!=12)