Ok I think I identified the issue but it is weird as well: seems I had (thanks maven for it) tomcat 8.0.18 + tomcat-el-api in version 8.0.12. So the bug was in the 8.0.12 actually. What is weird is it appeared only when upgrading to 8.0.18 other artifacts.
Romain Manni-Bucau @rmannibucau http://www.tomitribe.com http://rmannibucau.wordpress.com https://github.com/rmannibucau 2015-01-27 13:52 GMT+01:00 Konstantin Kolinko <knst.koli...@gmail.com>: > 2015-01-27 15:18 GMT+03:00 Konstantin Kolinko <knst.koli...@gmail.com>: >> 2015-01-26 21:17 GMT+03:00 Romain Manni-Bucau <rmannibu...@gmail.com>: >>> Hi guys, >>> >>> since I upgraded to 8.0.18 I get: >>> >>> SEVERE: Servlet.service() for servlet [jsp] in context with path >>> [/test] threw exception [javax.el.ELException: The class >>> [java.util.Iterator] must be public, non-abstract and not an >>> interface] with root cause >>> javax.el.ELException: The class [java.util.Iterator] must be public, >>> non-abstract and not an interface >>> at javax.el.ImportHandler.findClass(ImportHandler.java:171) >>> at javax.el.ImportHandler.importClass(ImportHandler.java:111) >> >> 1. Your stacktrace (the above lines) does not match the source code of >> current Tomcat 8.0.x and thus of 8.0.18. >> >>> at >>> org.apache.jasper.runtime.PageContextImpl.getELContext(PageContextImpl.java:954) >>> at org.apache.jsp.setup_jsp._jspx_meth_c_005fset_005f0(setup_jsp.java:261) >>> at org.apache.jsp.setup_jsp._jspService(setup_jsp.java:136) >>> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) >>> at >>> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:431) >>> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) >>> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) >>> > > To clarify: > In the current Tomcat 8 calling ImportHandler.importClass() does not > perform any validation > (except a satiny check that the name contains a '.'). > > That was thanks to early testing, as well as based on performance > concerns. It has been discussed in > https://issues.apache.org/bugzilla/show_bug.cgi?id=57142#c11 > > The check is performed when the class is resolved in > ImportHandler.resolveClass() and > only if you explicitly call that class name. > > I think that an unexpected collision between imported class names and > EL expressions is unlikely. > > Best regards, > Konstantin Kolinko > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org > For additional commands, e-mail: dev-h...@tomcat.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org