Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/MonitoringAction.java =================================================================== diff -u -r1b4e9de10adddb2caa877e7f16bdb6fa620c555a -ra13b8f12e473744d035754f8eb8ee1ade8780943 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 1b4e9de10adddb2caa877e7f16bdb6fa620c555a) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision a13b8f12e473744d035754f8eb8ee1ade8780943) @@ -34,6 +34,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang.StringEscapeUtils; import org.apache.log4j.Logger; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; @@ -135,11 +136,10 @@ Long contentId = (Long) sessionMap.get(ScratchieConstants.ATTR_TOOL_CONTENT_ID); List summaryList = getScratchieService().getQuestionSummary(contentId, itemUid); - // Removes all the html tags from an answer descriptions + // escape JS sensitive characters in answer descriptions for (GroupSummary summary : summaryList) { for (ScratchieAnswer answer : summary.getAnswers()) { - String description = (answer.getDescription() == null) ? "" : answer.getDescription() - .replaceAll("\\<.*?>", "").replaceAll("[\"]", """); + String description = (answer.getDescription() == null) ? "" : StringEscapeUtils.escapeJavaScript(answer.getDescription()); answer.setDescription(description); } }