Pluto
  1. Pluto
  2. PLUTO-591

HttpServletPortletResponseWrapper incorrectly assumes MimeResponse.getPortletOutputStream() is upcastable to ServletOutputStream

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.0
    • Fix Version/s: 2.0.2
    • Component/s: portlet container
    • Labels:
      None

      Description

      Reported by Rossen Stoyanchev on pluto-user@:

      Hi, I am attempting to use Sun's jsf-portlet integration with Pluto 2.0. I get the following:

      Caused by: java.lang.ClassCastException: com.sun.faces.portlet.ByteArrayWebOutputStream cannot be cast to javax.servlet.ServletOutputStream
      at org.apache.pluto.container.impl.HttpServletPortletResponseWrapper.getOutputStream(HttpServletPortletResponseWrapper.java:234)
      at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:792)
      at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:339)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
      at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
      at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
      at org.apache.pluto.container.impl.PortletRequestDispatcherImpl.doDispatch(PortletRequestDispatcherImpl.java:174)
      at org.apache.pluto.container.impl.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:227)
      at com.sun.faces.portlet.ExternalContextImpl.dispatch(ExternalContextImpl.java:147)
      at org.springframework.faces.webflow.ExternalContextWrapper.dispatch(ExternalContextWrapper.java:25)
      at com.sun.faces.portlet.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:371)
      at com.sun.faces.portlet.ViewHandlerImpl.renderView(ViewHandlerImpl.java:235)
      at org.springframework.faces.webflow.FlowViewHandler.renderView(FlowViewHandler.java:91)
      at org.springframework.faces.webflow.JsfView.render(JsfView.java:89)
      at org.springframework.webflow.engine.ViewState.render(ViewState.java:282)
      at org.springframework.webflow.engine.ViewState.doEnter(ViewState.java:186)
      at org.springframework.webflow.engine.State.enter(State.java:194)
      at org.springframework.webflow.engine.Flow.start(Flow.java:535)
      at org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:364)
      at org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:222)
      ... 69 more

      The JavaDocs for javax.portlet.MimeResponse indicates the getPortletOutputStream() method return value is of type java.io.OutputStream. Hence the cast to javax.servlet.ServletOutputStream in HttpServletPortletResponseWrapper seems dodgy. Can you confirm if this is indeed an issue with Pluto's implementation or not?

      Thanks,
      Rossen

        Activity

          People

          • Assignee:
            Ate Douma
            Reporter:
            Ate Douma
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development