Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/dto/GroupSummary.java =================================================================== diff -u -ree4201f2ead4c59e6411f7ac3921d62a42db589f -r97d962379745efc8be6cd313f8dfe640f9edcbf2 --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/dto/GroupSummary.java (.../GroupSummary.java) (revision ee4201f2ead4c59e6411f7ac3921d62a42db589f) +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/dto/GroupSummary.java (.../GroupSummary.java) (revision 97d962379745efc8be6cd313f8dfe640f9edcbf2) @@ -54,13 +54,24 @@ @Override public int compareTo(GroupSummary o) { - String name1 = this.sessionName.replaceAll("\\D+", ""); - String name2 = o.sessionName.replaceAll("\\D+", ""); - if (name1.length() == 0 || name2.length() == 0) { - return this.sessionName.compareTo(o.sessionName); + String name1 = this.sessionName.toLowerCase(); + String name2 = o.sessionName.toLowerCase(); + String nameWithoutNumbers1 = name1.replaceAll("\\d+", ""); + String nameWithoutNumbers2 = name2.replaceAll("\\d+", ""); + if (!nameWithoutNumbers1.equals(nameWithoutNumbers2)) { + return name1.compareTo(name2); } - Long num1 = Long.parseLong(name1); - Long num2 = Long.parseLong(name2); - return num1.compareTo(num2); + String numbers1 = name1.replaceAll("\\D+", ""); + String numbers2 = name2.replaceAll("\\D+", ""); + if (numbers1.length() == 0 || numbers2.length() == 0) { + return name1.compareTo(name2); + } + try { + Long num1 = Long.parseLong(numbers1); + Long num2 = Long.parseLong(numbers2); + return num1.compareTo(num2); + } catch (Exception e) { + return name1.compareTo(name2); + } } } \ No newline at end of file