Program: 179079
Project: 179079
Buggy source:
public void showTickets(List<Report> reports,int page,User user){
  HashMap<Integer,List<Report>> pages=new HashMap<Integer,List<Report>>();
  int cpage=1;
  for (  Report r : reports) {
    if (pages.containsKey(cpage)) {
      pages.get(cpage).add(r);
      if (pages.get(cpage).size() == 10) {
        cpage++;
      }
    }
 else {
      List<Report> t=new ArrayList<Report>();
      t.add(r);
      pages.put(cpage,t);
    }
  }
  if (!pages.containsKey(cpage)) {
    cpage--;
  }
  if (page <= 0) {
    user.sendMessage(ChatColor.RED + "String_Node_Str");
    return;
  }
  if (page > cpage) {
    user.sendMessage(ChatColor.RED + "String_Node_Str" + cpage+ "String_Node_Str");
    return;
  }
  if (cpage != 1) {
    user.sendMessage(ChatColor.GRAY + "String_Node_Str" + ChatColor.GREEN+ page+ ChatColor.GRAY+ "String_Node_Str"+ ChatColor.GREEN+ cpage);
  }
  for (  Report r : pages.get(page)) {
switch (r.getStatus()) {
case UNREAD:
      user.sendMessage(ChatColor.RED + r.readShorthand());
    break;
case READ:
  user.sendMessage(ChatColor.YELLOW + r.readShorthand());
break;
case INVESTIGATING:
user.sendMessage(ChatColor.GREEN + r.readShorthand());
break;
case CLOSED:
user.sendMessage(ChatColor.GRAY + r.readShorthand());
break;
case LOCKED:
user.sendMessage(ChatColor.DARK_GRAY + r.readShorthand());
break;
}
}
}

Fixed version (ground truth):
public void showTickets(List<Report> reports,int page,User user){
  HashMap<Integer,List<Report>> pages=new HashMap<Integer,List<Report>>();
  int cpage=1;
  for (  Report r : reports) {
    if (pages.containsKey(cpage)) {
      pages.get(cpage).add(r);
      if (pages.get(cpage).size() == 10) {
        cpage++;
      }
    }
 else {
      List<Report> t=new ArrayList<Report>();
      t.add(r);
      pages.put(cpage,t);
    }
  }
  if (!pages.containsKey(cpage)) {
    cpage--;
  }
  if (page <= 0) {
    user.sendMessage(ChatColor.RED + "String_Node_Str");
    return;
  }
  if (page > cpage) {
    user.sendMessage(ChatColor.RED + "String_Node_Str" + cpage+ "String_Node_Str");
    return;
  }
  if (cpage != 1) {
    user.sendMessage(ChatColor.GRAY + "String_Node_Str" + ChatColor.GREEN+ page+ ChatColor.GRAY+ "String_Node_Str"+ ChatColor.GREEN+ cpage);
  }
  for (  Report r : pages.get(page)) {
switch (r.getStatus()) {
case UNREAD:
      if (user.getName().equals(r.getAccused().getName()) && !user.hasPerm("String_Node_Str")) {
        user.sendMessage(ChatColor.RED + r.readShorthandAnon());
      }
 else {
        user.sendMessage(ChatColor.RED + r.readShorthand());
      }
    break;
case READ:
  if (user.getName().equals(r.getAccused().getName()) && !user.hasPerm("String_Node_Str")) {
    user.sendMessage(ChatColor.YELLOW + r.readShorthandAnon());
  }
 else {
    user.sendMessage(ChatColor.YELLOW + r.readShorthand());
  }
break;
case INVESTIGATING:
if (user.getName().equals(r.getAccused().getName()) && !user.hasPerm("String_Node_Str")) {
user.sendMessage(ChatColor.GREEN + r.readShorthandAnon());
}
 else {
user.sendMessage(ChatColor.GREEN + r.readShorthand());
}
break;
case CLOSED:
if (user.getName().equals(r.getAccused().getName()) && !user.hasPerm("String_Node_Str")) {
user.sendMessage(ChatColor.GRAY + r.readShorthandAnon());
}
 else {
user.sendMessage(ChatColor.GRAY + r.readShorthand());
}
break;
case LOCKED:
if (user.getName().equals(r.getAccused().getName()) && !user.hasPerm("String_Node_Str")) {
user.sendMessage(ChatColor.DARK_GRAY + r.readShorthandAnon());
}
 else {
user.sendMessage(ChatColor.DARK_GRAY + r.readShorthand());
}
break;
}
}
}