Program: 62108
Project: 62108
Buggy source:
public DemoDataGenerator(Context context){
  this.context=context;
  List<String> names=Arrays.asList("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  List<String> empty=new LinkedList<String>();
  empty.add(null);
  apps.add(new AppMock(new Application("String_Node_Str",false),names));
  apps.add(new AppMock(new Application("String_Node_Str",false),names));
  apps.add(new AppMock(new Application("String_Node_Str",false),names));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  Calendar cal=Calendar.getInstance();
  cal.set(Calendar.HOUR_OF_DAY,18);
  cal.set(Calendar.MINUTE,0);
  for (int i=0; i < 5000; i++) {
    cal.add(Calendar.HOUR,random.nextInt(2) * (-1));
    cal.add(Calendar.MINUTE,random.nextInt(30));
    dates.add(cal.getTime());
  }
}

Fixed version (ground truth):
public DemoDataGenerator(Context context){
  this.context=context;
  List<String> names=Arrays.asList("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  List<String> empty=new LinkedList<String>();
  empty.add(null);
  apps.add(new AppMock(new Application("String_Node_Str",false),names));
  apps.add(new AppMock(new Application("String_Node_Str",false),names));
  apps.add(new AppMock(new Application("String_Node_Str",false),names));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  apps.add(new AppMock(new Application("String_Node_Str",false),empty));
  Date date=new Date();
  Calendar cal=Calendar.getInstance();
  cal.setTimeInMillis(date.getTime());
  cal.set(Calendar.HOUR_OF_DAY,18);
  cal.set(Calendar.MINUTE,0);
  for (int i=0; i < notificationsAmount; i++) {
    cal.add(Calendar.HOUR,random.nextInt(2) * (-1));
    cal.add(Calendar.MINUTE,random.nextInt(30));
    if (dayToSkip != null && !dayToSkip.contains(cal.get(Calendar.DAY_OF_MONTH))) {
      dates.add(cal.getTime());
      Log.d("String_Node_Str",cal.getTime().toString());
    }
 else {
      i--;
    }
  }
}