Uploaded image for project: 'Struts 1'
  1. Struts 1
  2. STR-3079

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

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Not A Problem
    • Affects Version/s: 1.3.8
    • Fix Version/s: None
    • Component/s: Tag Libraries
    • Labels:
      None
    • Environment:
      Windows XP Struts/JSP application running in Tomcat 5.5 web container

      Description

      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

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              rdgarve Robert Garverick
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: