Index: lams_central/src/java/org/lamsfoundation/lams/webservice/SPEnrolmentServlet.java =================================================================== diff -u -rf02786865d2b80cca0c0d5bd38c0f65442cf2409 -re6faf35d647feed7b62d2dc0ee17bf1bb5af917b --- lams_central/src/java/org/lamsfoundation/lams/webservice/SPEnrolmentServlet.java (.../SPEnrolmentServlet.java) (revision f02786865d2b80cca0c0d5bd38c0f65442cf2409) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/SPEnrolmentServlet.java (.../SPEnrolmentServlet.java) (revision e6faf35d647feed7b62d2dc0ee17bf1bb5af917b) @@ -393,7 +393,7 @@ Map> subcourseMappings2 = mappings.get(c2.getKey()); if (subcourseMappings1 == null) { if (subcourseMappings2 == null) { - return 0; + return c1.equals(c2) ? 0 : 1; } else { return -1; } @@ -405,7 +405,9 @@ .collect(Collectors.summingInt(List::size)); int courseSize2 = subcourseMappings2.values().stream() .collect(Collectors.summingInt(List::size)); - return courseSize1 - courseSize2; + int courseSizeDifference = courseSize1 - courseSize2; + // never return 0 as course will considered a duplicate + return courseSizeDifference == 0 && !c1.equals(c2) ? 1 : courseSizeDifference; }; Collection>> spliterators = splitCollection( allParsedCourseMapping.entrySet(), parsedCourseSizeComparator);