Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -rc97b41d72e071f6293126bd85f6eba0b756f7836 -r0d5bce9b3d06456cf119cbb76805e673616378fa --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision c97b41d72e071f6293126bd85f6eba0b756f7836) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 0d5bce9b3d06456cf119cbb76805e673616378fa) @@ -595,15 +595,14 @@ } } - if (assessmentResult.getFinishDate() == null && questionResult == null) { - //it should get here only in case teacher edited content in monitor which led to removal of autosave questionResult + //if teacher edited content in monitor (modified question) it led to removal if autosaved questionResult + if (assessment.isContentModifiedInMonitor(assessmentResult.getStartDate()) + && questionResult == null) { + //update questionDto AssessmentQuestion modifiedQuestion = assessmentQuestionDao.getByUid(questionDto.getUid()); - PropertyUtils.copyProperties(questionDto, modifiedQuestion); + QuestionDTO updatedQuestionDto = modifiedQuestion.getQuestionDTO(); + PropertyUtils.copyProperties(questionDto, updatedQuestionDto); return 0; - -// questionResult = createQuestionResultObject(question); -// questionResult.setAssessmentResult(assessmentResult); -// assessmentQuestionResultDao.insert(questionResult); } // store question answer values @@ -1920,7 +1919,8 @@ assessmentResultDao.saveObject(assessmentResult); // if this is the last finished assessment result - propagade total mark to Gradebook - if (lastFinishedAssessmentResult.getUid().equals(assessmentResult.getUid())) { + if (lastFinishedAssessmentResult != null + && lastFinishedAssessmentResult.getUid().equals(assessmentResult.getUid())) { gradebookService.updateActivityMark(new Double(assessmentMark), null, user.getUserId().intValue(), toolSessionId, false); }