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 2009/01/07 17:18:21 UTC

svn commit: r732381 - /portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/internal/impl/PortletResponseImpl.java

Author: ate
Date: Wed Jan  7 08:18:21 2009
New Revision: 732381

URL: http://svn.apache.org/viewvc?rev=732381&view=rev
Log:
Re-enabling PortletResponse.getOutputStream() handling as was done in Pluto 1.0.1
This change allows a portlet to generate binary output instead of being forced to use the PrintWriter. 

Modified:
    portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/internal/impl/PortletResponseImpl.java

Modified: portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/internal/impl/PortletResponseImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/internal/impl/PortletResponseImpl.java?rev=732381&r1=732380&r2=732381&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/internal/impl/PortletResponseImpl.java (original)
+++ portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/internal/impl/PortletResponseImpl.java Wed Jan  7 08:18:21 2009
@@ -210,8 +210,15 @@
             		+ "after getWriter was invoked.");
         }
         if (wrappedWriter == null) {
-            wrappedWriter = new PrintWriterServletOutputStream(
-            		getHttpServletResponse().getWriter());
+            try {
+                wrappedWriter = getHttpServletResponse().getOutputStream();
+            }
+            catch (IllegalStateException ise) {
+                // handle situation where underlying ServletResponse its getWriter()
+                // has been called already anyway: return a wrapped PrintWriter in that case
+                wrappedWriter = new PrintWriterServletOutputStream(getHttpServletResponse().getWriter(),
+                                                                   getHttpServletResponse().getCharacterEncoding());
+            }
         }
         usingStream = true;
         return wrappedWriter;