Uploaded image for project: 'Reporting Module'
  1. Reporting Module
  2. REPORT-355

Reporting Module crashes when using Tomcat 7x

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • TBD
    • Resolution: Cannot Reproduce
    • Reporting 0.6.2
    • None
    • DataSet Definitions
    • Undetermined

    Description

      The following steps to reproduce:

      1. Log in as administrator.
      2. Click 'Administration' from the main toolbar.
      3. Under 'Manage Report Definitions', click 'Data Set Definitions'.
      4. Click the plus sign next to 'Simple Patient DataSet' to add a new Simple Row Per Patient DataSet.

      It worked with Tomcat 6. Did not work with Tomcat 7+.

      Logic and Data Export Data Sets pages worked as expected. The other data sets pages did not. Other helpful information below.

      OpenMRS Version: 1.8.3 Build 24510
      Application server name and version: Apache Tomcat 7.0.26
      Username of the user currently logged in: admin
      The implementation id of this installation (if defined)
      Names and versions of all installed modules
      Serialization Xstream 0.2.5
      Logic Module 0.5
      Reporting 0.6.2
      HTML Form Entry 1.7.3
      BIRT Report Module 2.5.1.1
      XForms 4.0.7
      Reporting Compatibility 1.5.4.1
      FormEntry 4.5.9.2
      HTML Widgets 1.5.7.1

      The error message and stack trace below:

      An Internal Error has Occurred
      org.apache.jasper.JasperException
      /WEB-INF/view/module/reporting/datasets/datasetEditor.jsp (line: 82, column: 7) "${dataSetDefinition.class.name}" contains invalid expression(s): javax.el.ELException: Failed to parse the expression [${dataSetDefinition.class.name}]

        • Root cause is: /WEB-INF/view/module/reporting/datasets/datasetEditor.jsp (line: 82, column: 7) "${dataSetDefinition.class.name}" contains invalid expression(s): javax.el.ELException: Failed to parse the expression [${dataSetDefinition.class.name}] org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
          org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:408)
          org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:199)
          org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1218)
          org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:870)
          org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
          org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
          org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
          org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
          org.apache.jasper.compiler.Node$Root.accept(Node.java:475)
          org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
          org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1790)
          org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:217)
          org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
          org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
          org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
          org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
          org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
          org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
          org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
          org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
          org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
          org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
          org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
          org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
          org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
          org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
          org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
          org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
          org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
          org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
          org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
          org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
          org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
          org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
          org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
          org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
          org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
          org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
          org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
          org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
          org.openmrs.module.web.filter.ForcePasswordChangeFilter.doFilter(ForcePasswordChangeFilter.java:65)
          org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
          org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
          org.openmrs.module.web.filter.ModuleFilterChain.doFilter(ModuleFilterChain.java:76)
          org.openmrs.module.xforms.web.XformsFilter.doFilter(XformsFilter.java:60)
          org.openmrs.module.web.filter.ModuleFilterChain.doFilter(ModuleFilterChain.java:74)
          org.openmrs.module.web.filter.ModuleFilter.doFilter(ModuleFilter.java:58)
          org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
          org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
          org.openmrs.web.filter.OpenmrsFilter.doFilterInternal(OpenmrsFilter.java:112)
          org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
          org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
          org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
          org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
          org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
          org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
          org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
          org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:83)
          org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
          org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
          org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:83)
          org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
          org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
          org.openmrs.web.filter.StartupFilter.doFilter(StartupFilter.java:83)
          org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
          org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
          org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
          org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
          org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
          org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
          org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
          org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
          org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
          org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
          org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
          org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
          org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
          org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
          org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
          org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
          org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
          java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
          java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
          java.lang.Thread.run(Thread.java:662)

      On advise, I have checked - TRUNK-3109 Remove java keywords from jsp - OpenMRS JIRA - https://tickets.openmrs.org/browse/TRUNK-3109 but did not help.

      Darius wrote:

      "This error is because we're doing something that used to be legal, but as of some more recent version of tomcat (maybe a newer version of the JSP spec) is no longer legal. Specifically, saying "something.class.name" used to do something.getClass().getName().

      The fix is to change dataSetDefinition.class.name to dataSetDefinition['class'].name...."

      Please attach a patch that fixes this for all the different pages having the problem.

      Gliffy Diagrams

        Attachments

          Activity

            People

              Unassigned Unassigned
              finbrain Michael Aro
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: