Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/controller/AuthoringController.java =================================================================== diff -u -r30ebb2bc92e52648b79c630bec0e26d23be93242 -rf613bbb4cf782af7b970335fa1b7a893e30dd718 --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 30ebb2bc92e52648b79c630bec0e26d23be93242) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/controller/AuthoringController.java (.../AuthoringController.java) (revision f613bbb4cf782af7b970335fa1b7a893e30dd718) @@ -372,11 +372,12 @@ request.setAttribute(AttributeNames.ATTR_MODE, ToolAccessMode.TEACHER.toString()); return readDatabaseData(startForm, request); } - + /** * Common method for "start" and "defineLater" */ - private String readDatabaseData(SurveyForm startForm, HttpServletRequest request) throws SurveyApplicationException { + private String readDatabaseData(SurveyForm startForm, HttpServletRequest request) + throws SurveyApplicationException { // save toolContentID into HTTPSession Long contentId = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID)); @@ -707,6 +708,9 @@ * @param request */ private void populateItemToForm(int itemIdx, SurveyQuestion item, QuestionForm form, HttpServletRequest request) { + // fetch question from DB rather than from HTTP session so we can lazy load its options + item = surveyService.getQuestion(item.getUid()); + if (itemIdx >= 0) { form.setItemIndex(new Integer(itemIdx).toString()); }