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

QTI 2.1: testVariables can ignore missing variables in items

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 12.3.2
    • Component/s: None
    • Labels:
      None

      Description

      The score of a test is calculated with the testVariables processing command. Some people customise the XML code directly and the SCORE variable needed by the test is missing. QtiWorks make an hard exception if the variable is missing but the specification said "Items with no matching variable are ignored.". So I think I can modify the behaviour of testVraibles in QtiWorks to ignore the missing "SCORE" variables.

      2018-02-19 11:56:31,826 [ajp-nio2-8009-exec-1] ERROR OLATRuntimeException - OLAT::ERROR ^%^ N1-E18 
      
      https://www.openolat.xyz.de/auth/RepositoryEntry/10747957
      Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0
      
      **RedScreen** Invalid variable lookup: SCORE
      
      <dispatchinfo>
      	<componentinfo>
      		<compname>ffo_main_at_run</compname>
      		<compclass>org.olat.core.gui.components.form.flexible.impl.FormWrapperContainer</compclass>
      		<extendedinfo>n/a</extendedinfo>
      		<event>
      			<class&gt;org.olat.core.gui.control.Event</class&gt;
      			<command>validation ok</command>
      			<tostring>com:validation ok,org.olat.core.gui.control.Event@d62b3f02</tostring>
      		</event>
      	</componentinfo>
      	<controllerinfo>
      		<controllername>org.olat.ims.qti21.ui.AssessmentTestDisplayController$QtiWorksController</controllername>
      		<controllername>org.olat.ims.qti21.ui.AssessmentTestDisplayController</controllername>
      		<controllername>org.olat.ims.qti21.ui.QTI21RuntimeController</controllername>
      		<controllername>org.olat.core.commons.fullWebApp.BaseFullWebappController</controllername>
      	</controllerinfo>
      </dispatchinfo>
      
      >>> stack of 1.cause::org.olat.core.logging.OLATRuntimeException: Invalid variable lookup: SCORE
      -> at org.olat.core.gui.exception.ExceptionWindowController.<init>(ExceptionWindowController.java:116)
         at org.olat.core.gui.exception.MsgFactory.createMessageChiefController(MsgFactory.java:57)
         at org.olat.core.gui.exception.MsgFactory.createMessageChiefController(MsgFactory.java:46)
         at org.olat.core.gui.components.Window.dispatchRequest(Window.java:589)
         at org.olat.core.gui.components.Window.doDispatchRequest(Window.java:282)
         at org.olat.core.gui.components.AbstractComponent.dispatchRequest(AbstractComponent.java:193)
         at org.olat.dispatcher.AuthenticatedDispatcher.processValidDispatchURI(AuthenticatedDispatcher.java:273)
         at org.olat.dispatcher.AuthenticatedDispatcher.execute(AuthenticatedDispatcher.java:190)
         at org.olat.core.servlets.OpenOLATServlet.executeUserRequest(OpenOLATServlet.java:289)
         at org.olat.core.servlets.OpenOLATServlet.doPost(OpenOLATServlet.java:232)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
      >>> stack of 2.cause::uk.ac.ed.ph.jqtiplus.exception.QtiInvalidLookupException: Invalid variable lookup: SCORE
      -> at uk.ac.ed.ph.jqtiplus.running.ItemProcessingController.evaluateVariableValue(ItemProcessingController.java:205)
         at uk.ac.ed.ph.jqtiplus.node.expression.outcome.TestVariables.handleSubset(TestVariables.java:135)
         at uk.ac.ed.ph.jqtiplus.node.expression.outcome.ItemSubset.evaluateValidSelf(ItemSubset.java:136)
         at uk.ac.ed.ph.jqtiplus.node.expression.AbstractFunctionalExpression.evaluateValidSelfAndChildren(AbstractFunctionalExpression.java:60)
         at uk.ac.ed.ph.jqtiplus.node.expression.AbstractExpression.evaluate(AbstractExpression.java:380)
         at uk.ac.ed.ph.jqtiplus.node.expression.AbstractExpression.evaluateChildren(AbstractExpression.java:418)
         at uk.ac.ed.ph.jqtiplus.node.expression.AbstractFunctionalExpression.evaluateValidSelfAndChildren(AbstractFunctionalExpression.java:57)
         at uk.ac.ed.ph.jqtiplus.node.expression.AbstractExpression.evaluate(AbstractExpression.java:380)
         at uk.ac.ed.ph.jqtiplus.node.expression.AbstractExpression.evaluate(AbstractExpression.java:363)
         at uk.ac.ed.ph.jqtiplus.node.test.outcome.processing.SetOutcomeValue.evaluate(SetOutcomeValue.java:111)
         at uk.ac.ed.ph.jqtiplus.node.test.outcome.processing.OutcomeProcessing.evaluate(OutcomeProcessing.java:87)
      

        Attachments

          Activity

            People

            Assignee:
            srosse Stéphane Rossé
            Reporter:
            srosse Stéphane Rossé
            Tester:
            Mandy Menzel
            Votes:
            0 Vote for this issue
            Watchers:
            2 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 - 1 hour, 20 minutes
                1h 20m