Uploaded image for project: 'OpenOLAT'
  1. OpenOLAT
  2. OO-3144

Test responses containing unicode characters that are not allowed in an xml file result in problems

    XMLWordPrintable

    Details

      Description

      In a QTI2.1 Test with a Essay or gap text questionaire the user enters unicode characters not allowed in xml files (&x12; or &x25; for example).

      When the teacher tries to assess this student the system will throw an exception because it can't parse the xml file that has been written incorrectly. I guess it would be the best option to filter these characters from the input in the first place, on the other hand this will not help teachers with already existing "malformed" xml result files.

       

      See also:

      https://testing.frentix.com/test6/auth/RepositoryEntry/101449729/assessmentToolv2/0/Users/0/Node/96600387524841

      trying to open the individual assessment result:

      <dispatchinfo>
      <componentinfo>
      <compname>ffo_main_identity_courseelement</compname>
      <compclass>org.olat.core.gui.components.form.flexible.impl.FormWrapperContainer</compclass>
      <extendedinfo>n/a</extendedinfo>
      <event>
      <class&gt;org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent</class&gt;
      <command>select</command>
      <tostring>com:select,org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent@c9ff351b</tostring>
      </event>
      </componentinfo>
      <controllerinfo>
      <controllername>org.olat.course.assessment.ui.tool.IdentityListCourseNodeController</controllername>
      <controllername>org.olat.course.assessment.ui.tool.AssessmentCourseTreeController</controllername>
      <controllername>org.olat.course.assessment.ui.tool.AssessmentToolController</controllername>
      <controllername>org.olat.course.run.CourseRuntimeController</controllername>
      <controllername>org.olat.core.commons.fullWebApp.BaseFullWebappController</controllername>
      </controllerinfo>
      </dispatchinfo>
      Throwable: org.olat.core.logging.OLATRuntimeException
      
      logmsg:Could not parse serailized state XML. This is an internal error as we currently don't expose this data to clients
      message:Could not parse serailized state XML. This is an internal error as we currently don't expose this data to clients,org.olat.core.logging.OLATRuntimeException
      
      at org.olat.ims.qti21.manager.QTI21ServiceImpl.loadStateDocument(QTI21ServiceImpl.java:562)
      at org.olat.ims.qti21.manager.QTI21ServiceImpl.loadTestSessionState(QTI21ServiceImpl.java:551)
      at org.olat.ims.qti21.ui.QTI21AssessmentDetailsController.updateModel(QTI21AssessmentDetailsController.java:250)
      at org.olat.ims.qti21.ui.QTI21AssessmentDetailsController.(QTI21AssessmentDetailsController.java:167)
      at org.olat.course.nodes.IQTESTCourseNode.getDetailsEditController(IQTESTCourseNode.java:835)
      at org.olat.course.assessment.ui.tool.AssessmentIdentityCourseNodeController.(AssessmentIdentityCourseNodeController.java:128)
      at org.olat.course.assessment.ui.tool.IdentityListCourseNodeController.doSelect(IdentityListCourseNodeController.java:595)
      at org.olat.course.assessment.ui.tool.IdentityListCourseNodeController.formInnerEvent(IdentityListCourseNodeController.java:528)
      at org.olat.core.gui.components.form.flexible.impl.FormBasicController.event(FormBasicController.java:430)
      at org.olat.course.assessment.ui.tool.IdentityListCourseNodeController.event(IdentityListCourseNodeController.java:480)
      
      
      1. cause:
      
      message:Character reference "" is an invalid XML character.,org.xml.sax.SAXParseException
      
      at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
      at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
      at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:205)
      at org.olat.ims.qti21.manager.QTI21ServiceImpl.loadStateDocument(QTI21ServiceImpl.java:560)
      at org.olat.ims.qti21.manager.QTI21ServiceImpl.loadTestSessionState(QTI21ServiceImpl.java:551)
      at org.olat.ims.qti21.ui.QTI21AssessmentDetailsController.updateModel(QTI21AssessmentDetailsController.java:250)
      at org.olat.ims.qti21.ui.QTI21AssessmentDetailsController.(QTI21AssessmentDetailsController.java:167)
      at org.olat.course.nodes.IQTESTCourseNode.getDetailsEditController(IQTESTCourseNode.java:835)
      at org.olat.course.assessment.ui.tool.AssessmentIdentityCourseNodeController.(AssessmentIdentityCourseNodeController.java:128)
      at org.olat.course.assessment.ui.tool.IdentityListCourseNodeController.doSelect(IdentityListCourseNodeController.java:595)

        Attachments

          Activity

            People

            Assignee:
            srosse Stéphane Rossé
            Reporter:
            d.haag Daniel Haag
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 3 hours, 35 minutes
                3h 35m