Uploaded image for project: 'Pluto'
  1. Pluto
  2. PLUTO-591

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

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: 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

        Attachments

          Activity

            People

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

              Dates

              • Created:
                Updated:
                Resolved: