Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/LearningAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/LearningAction.java,v diff -u -r1.18.6.1.4.1 -r1.18.6.1.4.2 --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/LearningAction.java 11 Feb 2010 05:19:15 -0000 1.18.6.1.4.1 +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/LearningAction.java 10 Feb 2011 23:19:18 -0000 1.18.6.1.4.2 @@ -550,13 +550,15 @@ private void validateAnswers(HttpServletRequest request, AnswerDTO question, ActionErrors errors, SurveyAnswer answer) { + boolean isAnswerEmpty = (answer.getChoices() == null && StringUtils.isBlank(answer.getAnswerText())); + // for mandatory questions, answer can not be null. - if (!question.isOptional() && answer == null) { + if (!question.isOptional() && isAnswerEmpty) { errors.add(SurveyConstants.ERROR_MSG_KEY + question.getUid(), new ActionMessage( SurveyConstants.ERROR_MSG_MANDATORY_QUESTION)); } if (question.getType() == SurveyConstants.QUESTION_TYPE_SINGLE_CHOICE && question.isAppendText() - && answer != null) { + && !isAnswerEmpty) { // for single choice, user only can choose one option or open text (if it has) if (!StringUtils.isBlank(answer.getAnswerChoices()) && !StringUtils.isBlank(answer.getAnswerText())) { errors.add(SurveyConstants.ERROR_MSG_KEY + question.getUid(), new ActionMessage( @@ -569,9 +571,6 @@ String[] choiceList = request.getParameterValues(SurveyConstants.PREFIX_QUESTION_CHOICE + question.getUid()); String textEntry = request.getParameter(SurveyConstants.PREFIX_QUESTION_TEXT + question.getUid()); - if (choiceList == null && StringUtils.isBlank(textEntry)) { - return null; - } SurveyAnswer answer = question.getAnswer(); if (answer == null) {