Uploaded image for project: 'OpenMRS Core'
  1. OpenMRS Core
  2. TRUNK-3109

Remove java keywords from jsp

    XMLWordPrintable

Details

    Description

      Tomcat recent added a change to support the changes in EL Spec 2.2[1] not allowing use of Java keywords

      We should also fix it by not using Java keywords (piv.class.name - "class" in this instance) inside of JSTL expressions.
      I'm not sure if there is a generic way to deal with this... but a codestyle might be useful to check where we are using Java keywords in JSTL. -Saptarshi

      Some versions of tomcat will have this:

      org.apache.jasper.JasperException: /WEB-INF/view/admin/patients/patientIdentifierTypeForm.jsp (line: 95, column: 6) "${status.value == piv.class.name}" contains invalid expression(s): javax.el.ELException: Failed to parse the expression [${status.value == piv.class.name}]
             at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
             at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:408)
             at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:199)
             at org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1218)
             at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:870)
             at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
             at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
             at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
             at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:889)
             at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
             at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
             at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
      

      Current workaround is this:
      Create/add the following to CATALINA_OPTS env var with the value: "-Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true"

      Example code fix is this:
      Change in line94 and line95 of patientIdentifierTypeForm.jsp from piv.class.name to piv['class'].name
      (and conceptForm page, etc)

      [1] http://jcp.org/aboutJava/communityprocess/mrel/jsr245/index.html

      Gliffy Diagrams

        Attachments

          Issue Links

            Activity

              People

                sunbiz Saptarshi Purkayastha
                bwolfe Ben Wolfe
                Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: