Uploaded image for project: 'Struts 2'
  1. Struts 2
  2. WW-4722

Portlet Issue with I18Interceptor

    XMLWordPrintableJSON

Details

    Description

      Portlets always throw the following exception:

      java.lang.IllegalStateException: Not allowed in a portlet

      Below is the method in the classs
      org.apache.struts2.portlet.servlet.PortletServletRequest where this always
      happens:

      public Cookie[] getCookies() {
          if (portletRequest instanceof HttpServletRequest) {
              return ((HttpServletRequest) portletRequest).getCookies();
          }
          throw new IllegalStateException("Not allowed in a portlet");
      }
      

      Apparently, the "portletRequest" variable is not an instance of "HttpServletRequest".

      NOTE - There are many other methods in class PortletServletRequest that use the exact same assumption/logic as the "getCookies()" method.

      That class is invoked by the class
      org.apache.struts2.interceptor.I18nInterceptor, which was just changed in version 2.5.5. See change https://issues.apache.org/jira/browse/WW-4686

      Finally, below is a partial stack trace

      SEVERE: Servlet.service() for servlet struts2portlet threw exception
      java.lang.IllegalStateException: Not allowed in a portlet
      at
      org.apache.struts2.portlet.servlet.PortletServletRequest.getCookies(PortletServletRequest.java:101)
      at
      org.apache.struts2.interceptor.I18nInterceptor.readStoredLocale(I18nInterceptor.java:215)
      at
      org.apache.struts2.interceptor.I18nInterceptor.storeLocale(I18nInterceptor.java:189)
      at
      org.apache.struts2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:144)
      at
      com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:240)
      at
      org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:171)
      at
      com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:240)
      at
      com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:195)
      at
      com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:240)
      at
      com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:193)
      at
      com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:240)
      at
      org.apache.struts2.portlet.interceptor.PortletAwareInterceptor.intercept(PortletAwareInterceptor.java:81)
      at
      com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:240)
      at
      org.apache.struts2.portlet.interceptor.PortletStateInterceptor.intercept(PortletStateInterceptor.java:51)
      at
      com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:240)
      at
      org.apache.struts2.factory.StrutsActionProxy.execute(StrutsActionProxy.java:54)
      at
      org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher.serviceAction(Jsr168Dispatcher.java:481)
      at
      org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher.render(Jsr168Dispatcher.java:341)
      at
      org.jasig.portal.portlet.container.FilterChainImpl.doFilter(FilterChainImpl.java:183)
      at
      org.jasig.portal.portlet.container.FilterChainImpl.processFilter(FilterChainImpl.java:99)
      at
      org.jasig.portal.portlet.container.FilterManagerImpl.processFilter(FilterManagerImpl.java:110)
      at
      org.apache.pluto.container.driver.PortletServlet.dispatch(PortletServlet.java:340)
      at
      org.apache.pluto.container.driver.PortletServlet.doGet(PortletServlet.java:261)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

      Attachments

        Issue Links

          Activity

            People

              lukaszlenart Lukasz Lenart
              tkofford Todd Kofford
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: