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

RS: expert rules syntax checker

    XMLWordPrintable

    Details

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

      Description

      If the syntax error is not in the list -> red screen.
      Catch all errors and say "I don't know" instead of a red screen

      2020-03-19 08:18:45.419 [ajp-nio2-8067-exec-91] ERROR OLATRuntimeException
      I18714997-J216274 ^%^ org.olat.core.logging.OLATRuntimeException
      https://openolat.xyz.ch/auth/RepositoryEntry/154566704/Editor/0
      Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko ^%^ **RedScreen** 256
      
      <dispatchinfo>
      	<componentinfo>
      		<compname>ffo_main_null</compname>
      		<compclass>org.olat.core.gui.components.form.flexible.impl.FormWrapperContainer</compclass>
      		<extendedinfo>n/a</extendedinfo>
      		<event> </event>
      	</componentinfo>
      	<controllerinfo>
      		<controllername>org.olat.course.condition.ConditionConfigExpertForm</controllername>
      		<controllername>org.olat.course.condition.ConditionEditController</controllername>
      		<controllername>org.olat.course.nodes.iq.IQEditController</controllername>
      		<controllername>org.olat.course.editor.EditorMainController</controllername>
      		<controllername>org.olat.course.run.CourseRuntimeController</controllername>
      		<controllername>org.olat.core.commons.fullWebApp.BaseFullWebappController</controllername>
      	</controllerinfo>
      </dispatchinfo>
      
      org.olat.core.logging.OLATRuntimeException: 256
      at org.olat.course.condition.interpreter.ConditionInterpreter.handleExpressionExceptions(ConditionInterpreter.java:268)
      at org.olat.course.condition.interpreter.ConditionInterpreter.syntaxTestExpression(ConditionInterpreter.java:213)
      at org.olat.course.editor.CourseEditorEnvImpl.validateConditionExpression(CourseEditorEnvImpl.java:225)
      at org.olat.course.condition.ConditionConfigExpertForm.validateFormLogic(ConditionConfigExpertForm.java:83)
      at org.olat.core.gui.components.form.flexible.impl.Form.validate(Form.java:460)
      at org.olat.core.gui.components.form.flexible.impl.Form.submit(Form.java:440)
      at org.olat.core.gui.components.form.flexible.impl.Form.submit(Form.java:428)
      at org.olat.core.gui.components.form.flexible.impl.elements.FormSubmit.dispatchFormRequest(FormSubmit.java:72)
      at org.olat.core.gui.components.form.flexible.impl.FormItemImpl.doDispatchFormRequest(FormItemImpl.java:561)
      at org.olat.core.gui.components.form.flexible.impl.Form.evalFormRequest(Form.java:296)
      at org.olat.core.gui.components.form.flexible.impl.FormWrapperContainer.doDispatchRequest(FormWrapperContainer.java:100)
      at org.olat.core.gui.components.AbstractComponent.dispatchRequest(AbstractComponent.java:193)
      at org.olat.core.gui.components.Window.doDispatchToComponent(Window.java:1218)
      at org.olat.core.gui.components.Window.dispatchRequest(Window.java:400)
      at org.olat.core.gui.components.Window.doDispatchRequest(Window.java:284)
      at org.olat.core.gui.components.AbstractComponent.dispatchRequest(AbstractComponent.java:193)
      at org.olat.dispatcher.AuthenticatedDispatcher.processValidDispatchURI(AuthenticatedDispatcher.java:263)
      at org.olat.dispatcher.AuthenticatedDispatcher.execute(AuthenticatedDispatcher.java:184)
      at org.olat.core.servlets.OpenOLATServlet.executeUserRequest(OpenOLATServlet.java:269)
      at org.olat.core.servlets.OpenOLATServlet.doPost(OpenOLATServlet.java:216)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
      at org.olat.core.servlets.OpenOLATServlet.service(OpenOLATServlet.java:160)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
      at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
      at org.olat.core.servlets.HeadersFilter.doFilter(HeadersFilter.java:95)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
      at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:479)
      at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
      at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800)
      at org.apache.tomcat.util.net.Nio2Endpoint$SocketProcessor.doRun(Nio2Endpoint.java:1699)
      at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
      at org.apache.tomcat.util.net.AbstractEndpoint.processSocket(AbstractEndpoint.java:1050)
      at org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper$4.completed(Nio2Endpoint.java:630)
      at org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper$4.completed(Nio2Endpoint.java:608)
      at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)
      at sun.nio.ch.Invoker$2.run(Invoker.java:218)
      at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      at java.lang.Thread.run(Thread.java:748)
      Caused by: java.lang.ArrayIndexOutOfBoundsException: 256 at com.neemsoft.jmep.Expression.parseString(Expression.java:341)
      at com.neemsoft.jmep.Expression.tokenize(Expression.java:480)
      at com.neemsoft.jmep.Expression.<init>(Expression.java:230)
      at com.neemsoft.jmep.Expression.<init>(Expression.java:211)
      at org.olat.course.condition.interpreter.ConditionInterpreter.syntaxTestExpression(ConditionInterpreter.java:199)
      ... 51 more
      

        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: