Version 1.3.8 breaks JSP/JSTL core taglib 'forEach' loops
---------------------------------------------------------

                 Key: STR-3079
                 URL: https://issues.apache.org/struts/browse/STR-3079
             Project: Struts 1
          Issue Type: Bug
          Components: Taglibs
    Affects Versions: 1.3.8
         Environment: Windows XP Struts/JSP application running in Tomcat 5.5 
web container
            Reporter: Robert Garverick


After I upgraded my Struts/JSP application from Struts 1.2 to Struts 1.3.8 
(following directions in 
http://wiki.apache.org/struts/StrutsUpgradeNotes12to13) the JSTL core taglib 
'forEach' loops in my JSP pages will no longer compile under Tomcat (see 
exceptions below).  Since the outdated JSTL version 1.0.2 Jar files delivered 
in the Struts 1.3.8 download (jstl-1.0.2.jar and standard-1.0.2.jar) completely 
killed my JSP application since they don't even support expression language, I 
replaced them with the same JSTL 1.1 Jar files from J2EE 5 (appserv-jstl.jar 
and javaee.jar) that I used successfully under Struts 1.2.  Under JSTL 1.1, all 
of my Struts taglib functions and JSTL taglib functions work fine except for 
the JSTL core 'forEach' tag.  (I also tried newer JSTL Jar files from J2EE 5 
update 2 and got the same results).  I realize that this seems more like a JSTL 
than a Struts bug, but the only variable seems to be the Struts upgrade.

Following are the first two of the series of exception messages I get the first 
time a JSP page containing a 'forEach' loop is invoked and Tomcat attempts to 
compile it to a servlet:

Jul 22, 2007 7:36:46 AM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.AbstractMethodError: 
javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
        at 
javax.servlet.jsp.jstl.core.LoopTagSupport.unExposeVariables(LoopTagSupport.java:587)
        at 
javax.servlet.jsp.jstl.core.LoopTagSupport.doFinally(LoopTagSupport.java:323)
        at 
org.apache.jsp.pages.welcome_jsp._jspx_meth_c_forEach_0(welcome_jsp.java:237)
        at org.apache.jsp.pages.welcome_jsp._jspService(welcome_jsp.java:125)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
        at 
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
        at 
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
        at 
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
        at 
org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:643)
        at 
org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:637)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at 
org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:129)
        at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:152)
        at 
org.apache.struts.tiles.taglib.InsertTag.doInclude(InsertTag.java:764)
        at 
org.apache.struts.tiles.taglib.InsertTag$InsertHandler.doEndTag(InsertTag.java:896)
        at org.apache.struts.tiles.taglib.InsertTag.doEndTag(InsertTag.java:465)
        at 
org.apache.jsp.pages.layouts.mainLayout_jsp._jspx_meth_tiles_insert_2(mainLayout_jsp.java:370)
        at 
org.apache.jsp.pages.layouts.mainLayout_jsp._jspx_meth_html_html_0(mainLayout_jsp.java:222)
        at 
org.apache.jsp.pages.layouts.mainLayout_jsp._jspService(mainLayout_jsp.java:148)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
        at 
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
        at 
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
        at 
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
        at 
org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:643)
        at 
org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:637)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at 
org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:129)
        at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:152)
        at 
org.apache.struts.tiles.taglib.InsertTag.doInclude(InsertTag.java:764)
        at 
org.apache.struts.tiles.taglib.InsertTag$InsertHandler.doEndTag(InsertTag.java:896)
        at org.apache.struts.tiles.taglib.InsertTag.doEndTag(InsertTag.java:465)
        at 
org.apache.jsp.index_jsp._jspx_meth_tiles_insert_0(index_jsp.java:132)
        at org.apache.jsp.index_jsp._jspService(index_jsp.java:106)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Unknown Source)
Jul 22, 2007 7:36:46 AM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.AbstractMethodError: 
javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
        at 
javax.servlet.jsp.jstl.core.LoopTagSupport.unExposeVariables(LoopTagSupport.java:587)
        at 
javax.servlet.jsp.jstl.core.LoopTagSupport.doFinally(LoopTagSupport.java:323)
        at 
org.apache.jsp.pages.welcome_jsp._jspx_meth_c_forEach_0(welcome_jsp.java:237)
        at org.apache.jsp.pages.welcome_jsp._jspService(welcome_jsp.java:125)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
        at 
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
        at 
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
        at 
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
        at 
org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:614)
        at 
org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:138)
        at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:152)
        at 
org.apache.struts.tiles.taglib.InsertTag.doInclude(InsertTag.java:764)
        at 
org.apache.struts.tiles.taglib.InsertTag$InsertHandler.doEndTag(InsertTag.java:896)
        at org.apache.struts.tiles.taglib.InsertTag.doEndTag(InsertTag.java:465)
        at 
org.apache.jsp.pages.layouts.mainLayout_jsp._jspx_meth_tiles_insert_2(mainLayout_jsp.java:370)
        at 
org.apache.jsp.pages.layouts.mainLayout_jsp._jspx_meth_html_html_0(mainLayout_jsp.java:222)
        at 
org.apache.jsp.pages.layouts.mainLayout_jsp._jspService(mainLayout_jsp.java:148)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
        at 
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
        at 
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
        at 
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
        at 
org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:643)
        at 
org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:637)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at 
org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:129)
        at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:152)
        at 
org.apache.struts.tiles.taglib.InsertTag.doInclude(InsertTag.java:764)
        at 
org.apache.struts.tiles.taglib.InsertTag$InsertHandler.doEndTag(InsertTag.java:896)
        at org.apache.struts.tiles.taglib.InsertTag.doEndTag(InsertTag.java:465)
        at 
org.apache.jsp.index_jsp._jspx_meth_tiles_insert_0(index_jsp.java:132)
        at org.apache.jsp.index_jsp._jspService(index_jsp.java:106)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Unknown Source)
Jul 22, 2007 7:36:46 AM org.apache.struts.tiles.taglib.InsertTag$InsertHandler 
doEndTag



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to