https://bz.apache.org/bugzilla/show_bug.cgi?id=69974

            Bug ID: 69974
           Summary: Nested class EL resolution fails when JSTL API classes
                    precede tomcat-embed-jasper on classpath
           Product: Tomcat 11
           Version: 11.0.15
          Hardware: PC
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Jasper
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: -------

The JasperELResolver is sensitive to the order of EL/EL API classes on the
classpath. JSTL jars appear to mask or override EL classes when loaded first.

I noticed this when attempting to import and use nested enum values. See
https://github.com/BriceRoncace/tomcat-jsp-demo for a demonstration. 


WORKING the dependency order:

<dependency
  <groupId>org.apache.tomcat.embed</groupId>
  <artifactId>tomcat-embed-jasper</artifactId>
  <version>11.0.15</version>
</dependency>
<dependency>
  <groupId>jakarta.servlet.jsp.jstl</groupId>
  <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
  <version>3.0.2</version>
</dependency>

dependency tree snippet:
[INFO] +- org.apache.tomcat.embed:tomcat-embed-jasper:jar:11.0.15:provided
[INFO] |  +- org.apache.tomcat.embed:tomcat-embed-core:jar:11.0.15:provided
[INFO] |  |  \- org.apache.tomcat:tomcat-annotations-api:jar:11.0.15:provided
[INFO] |  +- org.apache.tomcat.embed:tomcat-embed-el:jar:11.0.15:compile
[INFO] |  \- org.eclipse.jdt:ecj:jar:3.43.0:provided
[INFO] +-
jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:jar:3.0.2:compile
[INFO] |  +- jakarta.servlet:jakarta.servlet-api:jar:6.1.0:compile
[INFO] |  \- jakarta.el:jakarta.el-api:jar:5.0.0:compile



FAILING the dependency order:

<dependency>
  <groupId>jakarta.servlet.jsp.jstl</groupId>
  <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
  <version>3.0.2</version>
</dependency>
<dependency
  <groupId>org.apache.tomcat.embed</groupId>
  <artifactId>tomcat-embed-jasper</artifactId>
  <version>11.0.15</version>
</dependency>

dependency tree snippet:
[INFO] +-
jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:jar:3.0.2:compile
[INFO] |  +- jakarta.servlet:jakarta.servlet-api:jar:6.1.0:compile
[INFO] |  \- jakarta.el:jakarta.el-api:jar:5.0.0:compile
[INFO] +- org.apache.tomcat.embed:tomcat-embed-jasper:jar:11.0.15:provided
[INFO] |  +- org.apache.tomcat.embed:tomcat-embed-core:jar:11.0.15:provided
[INFO] |  |  \- org.apache.tomcat:tomcat-annotations-api:jar:11.0.15:provided
[INFO] |  +- org.apache.tomcat.embed:tomcat-embed-el:jar:11.0.15:compile
[INFO] |  \- org.eclipse.jdt:ecj:jar:3.43.0:provided


Thank you!

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to