Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -re4dafa87e0a9bf8dc7cbb446fbd3fb1afeab2762 -rdf2ba0cf444a79bd1ab6d23b67f90cc1653cb4a7 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision e4dafa87e0a9bf8dc7cbb446fbd3fb1afeab2762) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision df2ba0cf444a79bd1ab6d23b67f90cc1653cb4a7) @@ -1672,11 +1672,23 @@ sessionIdToUsersMap.put(sessionId, users); } + Set questionReferences = new TreeSet<>(new SequencableComparator()); - questionReferences.addAll(assessment.getQuestionReferences()); + boolean hasRandomQuestion = false; + for (QuestionReference reference : questionReferences) { + hasRandomQuestion |= reference.isRandomQuestion(); + if (hasRandomQuestion) { + break; + } + questionReferences.add(reference); + } + // if there is at least one random question, we need to show all questions + Collection questions = hasRandomQuestion + ? assessment.getQuestions() + : questionReferences.stream() + .collect(Collectors.mapping(QuestionReference::getQuestion, Collectors.toList())); - for (QuestionReference questionReference : questionReferences) { - AssessmentQuestion question = questionReference.getQuestion(); + for (AssessmentQuestion question : questions) { Long questionUid = question.getUid(); QuestionSummary questionSummary = new QuestionSummary(question);