You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by at...@apache.org on 2010/04/23 10:48:48 UTC
svn commit: r937193 -
/portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/HttpServletPortletResponseWrapper.java
Author: ate
Date: Fri Apr 23 08:48:48 2010
New Revision: 937193
URL: http://svn.apache.org/viewvc?rev=937193&view=rev
Log:
PLUTO-591: HttpServletPortletResponseWrapper incorrectly assumes MimeResponse.getPortletOutputStream() is upcastable to ServletOutputStream
See: https://issues.apache.org/jira/browse/PLUTO-591
Issue reported by Rossen Stoyanchev, thanks!
Modified:
portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/HttpServletPortletResponseWrapper.java
Modified: portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/HttpServletPortletResponseWrapper.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/HttpServletPortletResponseWrapper.java?rev=937193&r1=937192&r2=937193&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/HttpServletPortletResponseWrapper.java (original)
+++ portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/HttpServletPortletResponseWrapper.java Fri Apr 23 08:48:48 2010
@@ -17,6 +17,7 @@
package org.apache.pluto.container.impl;
import java.io.IOException;
+import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Locale;
@@ -44,6 +45,8 @@ public class HttpServletPortletResponseW
private final MimeResponse mimeResponse;
private final String lifecyclePhase;
private boolean included;
+ private OutputStream outputStream;
+ private ServletOutputStream servletOutputStream;
public HttpServletPortletResponseWrapper(HttpServletResponse response, PortletRequest portletRequest, PortletResponse portletResponse, boolean included)
{
@@ -231,7 +234,26 @@ public class HttpServletPortletResponseW
@Override
public ServletOutputStream getOutputStream() throws IOException
{
- return mimeResponse != null ? (ServletOutputStream)mimeResponse.getPortletOutputStream() : DummyServletOutputStream.getInstance();
+ if (servletOutputStream == null)
+ {
+ outputStream = mimeResponse != null ? mimeResponse.getPortletOutputStream() : DummyServletOutputStream.getInstance();
+ if (outputStream instanceof ServletOutputStream)
+ {
+ servletOutputStream = (ServletOutputStream)outputStream;
+ }
+ else
+ {
+ servletOutputStream = new ServletOutputStream()
+ {
+ @Override
+ public void write(int b) throws IOException
+ {
+ outputStream.write(b);
+ }
+ };
+ }
+ }
+ return servletOutputStream;
}
@Override