Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java,v diff -u -r1.11.6.2 -r1.11.6.3 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java 28 Sep 2011 20:59:38 -0000 1.11.6.2 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java 29 Sep 2011 13:43:36 -0000 1.11.6.3 @@ -162,7 +162,7 @@ final AssessmentQuestion genericEntity = (AssessmentQuestion) o; - return new EqualsBuilder().append(this.getUid(), genericEntity.getUid()).isEquals(); + return new EqualsBuilder().append(this.getUid(), genericEntity.getUid()).append(this.getSequenceId(), genericEntity.getSequenceId()).isEquals(); } @Override @@ -182,7 +182,7 @@ @Override public int hashCode() { - return new HashCodeBuilder().append(getUid()).toHashCode(); + return new HashCodeBuilder().append(getUid()).append(getSequenceId()).toHashCode(); } // ********************************************************** Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/QuestionReference.hbm.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Attic/QuestionReference.hbm.xml,v diff -u -r1.1.2.2 -r1.1.2.3 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/QuestionReference.hbm.xml 28 Sep 2011 20:59:38 -0000 1.1.2.2 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/QuestionReference.hbm.xml 29 Sep 2011 13:43:35 -0000 1.1.2.3 @@ -28,7 +28,7 @@ questionReferences = assessment.getQuestionReferences(); Set questionsFromDB = new LinkedHashSet(); + //add non-random questions for (QuestionReference questionReference : questionReferences) { if (!questionReference.isRandomQuestion()) { questionsFromDB.add(questionReference.getQuestion()); } } Set allQuestions = assessment.getQuestions(); Collection availableQuestions = CollectionUtils.subtract(allQuestions, questionsFromDB); + //add random questions (actually replacing them with real ones) for (QuestionReference questionReference : questionReferences) { if (questionReference.isRandomQuestion()) { //pick a random element Random rand = new Random(System.currentTimeMillis()); AssessmentQuestion question = (AssessmentQuestion) availableQuestions.toArray()[rand.nextInt(availableQuestions.size())]; questionsFromDB.add(question); + availableQuestions.remove(question); } }