Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java =================================================================== diff -u -r2a68a250e3ae88b708a9a2a91e9f3439a4b6d7a9 -rdfa2d6ba82c3645e3430cfaf419a1c711b52647d --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 2a68a250e3ae88b708a9a2a91e9f3439a4b6d7a9) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision dfa2d6ba82c3645e3430cfaf419a1c711b52647d) @@ -33,6 +33,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.LinkedList; @@ -346,10 +347,14 @@ // **********************************Get Assessment PO********************* Assessment assessmentPO = service.getAssessmentByContentId(assessmentForm.getAssessment().getContentId()); - service.releaseQuestionsAndReferencesFromCache(assessmentPO); + //allow using old and modified questions and references altogether + if (mode.isTeacher()) { + service.releaseQuestionsAndReferencesFromCache(assessmentPO); + } - Set oldQuestions = assessmentPO.getQuestions(); - Set oldReferences = assessmentPO.getQuestionReferences(); + Set oldQuestions = (assessmentPO == null) ? new HashSet() : assessmentPO.getQuestions(); + Set oldReferences = (assessmentPO == null) ? new HashSet() : assessmentPO.getQuestionReferences(); + if (assessmentPO == null) { // new Assessment, create it. assessmentPO = assessment; @@ -394,10 +399,10 @@ } assessmentPO.setQuestions(questions); - //Define Later - recalculate results List deletedQuestions = getDeletedQuestionList(sessionMap); Set newReferences = updateQuestionReferencesGrades(request, sessionMap, true); List deletedReferences = getDeletedQuestionReferences(sessionMap); + //recalculate results in case content is edited from monitoring if (mode.isTeacher()) { service.recalculateUserAnswers(assessmentPO, oldQuestions, newQuestions, oldReferences, newReferences, deletedReferences);