Index: lams_common/src/java/org/lamsfoundation/lams/questions/QuestionParser.java =================================================================== diff -u -r65ed4da382b320542dcd88cb1375662dcfac8769 -rf9b2102cf2cabf9b832a4d5cd002bd0618ce4050 --- lams_common/src/java/org/lamsfoundation/lams/questions/QuestionParser.java (.../QuestionParser.java) (revision 65ed4da382b320542dcd88cb1375662dcfac8769) +++ lams_common/src/java/org/lamsfoundation/lams/questions/QuestionParser.java (.../QuestionParser.java) (revision f9b2102cf2cabf9b832a4d5cd002bd0618ce4050) @@ -137,7 +137,7 @@ // do not support algorithmic question type continue questionLoop; } - question.setText(questionText); + question.setText(WebUtil.removeHTMLtags(questionText)); } else if ("response_lid".equals(presentationChild.getNodeName())) { // parse answers NodeList answerList = ((Element) presentationChild).getElementsByTagName("response_label"); @@ -146,7 +146,7 @@ Element textElement = (Element) answerElement.getElementsByTagName("mattext").item(0); String answerText = ((CDATASection) textElement.getChildNodes().item(0)).getData(); Answer answer = new Answer(); - answer.setText(answerText); + answer.setText(WebUtil.removeHTMLtags(answerText)); if (question.getAnswers() == null) { question.setAnswers(new ArrayList()); } @@ -203,14 +203,14 @@ String feedbackType = feedbackElement.getAttribute("view"); // it is a question feedback if ("All".equalsIgnoreCase(feedbackType)) { - question.setFeedback(feedbackText); + question.setFeedback(WebUtil.removeHTMLtags(feedbackText)); } else { // it is an answer feedback String feedbackId = feedbackElement.getAttribute("ident"); String answerId = feedbackMap.get(feedbackId); if (answerId != null) { Answer answer = answerMap.get(answerId); - answer.setFeedback(feedbackText); + answer.setFeedback(WebUtil.removeHTMLtags(feedbackText)); } } } @@ -240,7 +240,9 @@ String questionFeedback = WebUtil.extractParameterValue(queryString, "question" + questionIndex + "feedback"); // can be blank - question.setFeedback(URLDecoder.decode(questionFeedback, "UTF8")); + if (!StringUtils.isBlank(questionFeedback)) { + question.setFeedback(URLDecoder.decode(questionFeedback, "UTF8")); + } if (chooseAnswers) { String answerCountParam = WebUtil.extractParameterValue(queryString, "answerCount" + questionIndex); int answerCount = answerCountParam == null ? 0 : Integer.parseInt(answerCountParam); @@ -256,12 +258,13 @@ if (!StringUtils.isBlank(answerScore)) { answer.setScore(Float.parseFloat(answerScore)); } - + String answerFeedback = WebUtil.extractParameterValue(queryString, answerId + "feedback"); // can be blank - answer.setFeedback(URLDecoder.decode(answerFeedback, "UTF8")); - + if (!StringUtils.isBlank(answerFeedback)) { + answer.setFeedback(URLDecoder.decode(answerFeedback, "UTF8")); + } question.getAnswers().add(answer); } } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java =================================================================== diff -u -r65ed4da382b320542dcd88cb1375662dcfac8769 -rf9b2102cf2cabf9b832a4d5cd002bd0618ce4050 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java (.../McAction.java) (revision 65ed4da382b320542dcd88cb1375662dcfac8769) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java (.../McAction.java) (revision f9b2102cf2cabf9b832a4d5cd002bd0618ce4050) @@ -696,8 +696,8 @@ Question[] questions = QuestionParser.parseQuestionChoiceForm(request.getQueryString()); for (Question question : questions) { - // quietly do same verification as in other question-adding methods - String questionText = WebUtil.removeHTMLtags(question.getText()); + // quietly do same verification as in other question-adding methods + String questionText = question.getText(); if (StringUtils.isBlank(questionText)) { LamsDispatchAction.log.warn("Skipping a blank question."); continue; @@ -715,7 +715,7 @@ if (question.getAnswers() != null) { for (Answer answer : question.getAnswers()) { McCandidateAnswersDTO mcCandidateAnswersDTO = new McCandidateAnswersDTO(); - String answerText = WebUtil.removeHTMLtags(answer.getText()); + String answerText = answer.getText(); if (correctAnswer != null && correctAnswer.equals(answerText)) { LamsDispatchAction.log.warn("Skipping an answer with same text as the correct answer: " + answerText);