You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2006/12/19 23:55:22 UTC

svn commit: r488845 - in /tapestry/tapestry4/trunk: tapestry-framework/src/java/org/apache/tapestry/json/ tapestry-framework/src/java/org/apache/tapestry/markup/ tapestry-framework/src/java/org/apache/tapestry/services/impl/ tapestry-portlet/src/test/o...

Author: jkuhnert
Date: Tue Dec 19 14:55:21 2006
New Revision: 488845

URL: http://svn.apache.org/viewvc?view=rev&rev=488845
Log:
Resolves TAPESTRY-825. Cookies weren't always being written out properly because the io flush() call wasn't happening
 in time for them to be considered part of the header response by the browser. 

Modified:
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/json/IJSONWriter.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/markup/JSONWriterImpl.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DefaultResponseBuilder.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/JSONResponseBuilder.java
    tapestry/tapestry4/trunk/tapestry-portlet/src/test/org/apache/tapestry/portlet/TestPortletRenderer.java

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/json/IJSONWriter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/json/IJSONWriter.java?view=diff&rev=488845&r1=488844&r2=488845
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/json/IJSONWriter.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/json/IJSONWriter.java Tue Dec 19 14:55:21 2006
@@ -50,4 +50,10 @@
      * any reasources associated with writer to be flushed/written.
      */
     void close();
+    
+    /**
+     * Forwards <code>flush()</code> to this <code>IMarkupWriter</code>'s
+     * <code>PrintWriter</code>.
+     */
+    void flush();
 }

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/markup/JSONWriterImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/markup/JSONWriterImpl.java?view=diff&rev=488845&r1=488844&r2=488845
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/markup/JSONWriterImpl.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/markup/JSONWriterImpl.java Tue Dec 19 14:55:21 2006
@@ -98,6 +98,11 @@
         return _array;
     }
     
+    public void flush()
+    {
+        _writer.flush();
+    }
+    
     /**
      * The outputstream being used to write this 
      * instance's content.

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DefaultResponseBuilder.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DefaultResponseBuilder.java?view=diff&rev=488845&r1=488844&r2=488845
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DefaultResponseBuilder.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DefaultResponseBuilder.java Tue Dec 19 14:55:21 2006
@@ -148,6 +148,11 @@
             _writer = _markupWriterSource.newMarkupWriter(printWriter, contentType);
         }
         
+        // Important - causes any cookies stored to properly be written out before the
+        // rest of the response starts being written - see TAPESTRY-825
+        
+        _writer.flush();
+        
         // render response
         
         _prs = new PageRenderSupportImpl(_assetFactory, _namespace, cycle.getPage().getLocation(), this);

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java?view=diff&rev=488845&r1=488844&r2=488845
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java Tue Dec 19 14:55:21 2006
@@ -188,6 +188,11 @@
         
         _writer = _markupWriterSource.newMarkupWriter(printWriter, _contentType);
         
+        // Important - causes any cookies stored to properly be written out before the
+        // rest of the response starts being written - see TAPESTRY-825
+        
+        _writer.flush();
+        
         parseParameters(cycle);
         
         beginResponse();

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/JSONResponseBuilder.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/JSONResponseBuilder.java?view=diff&rev=488845&r1=488844&r2=488845
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/JSONResponseBuilder.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/JSONResponseBuilder.java Tue Dec 19 14:55:21 2006
@@ -142,6 +142,11 @@
         
         _writer = _markupWriterSource.newJSONWriter(printWriter, _contentType);
         
+        // Important - causes any cookies stored to properly be written out before the
+        // rest of the response starts being written - see TAPESTRY-825
+        
+        _writer.flush();
+        
         // render response
         
         parseParameters(cycle);

Modified: tapestry/tapestry4/trunk/tapestry-portlet/src/test/org/apache/tapestry/portlet/TestPortletRenderer.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-portlet/src/test/org/apache/tapestry/portlet/TestPortletRenderer.java?view=diff&rev=488845&r1=488844&r2=488845
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-portlet/src/test/org/apache/tapestry/portlet/TestPortletRenderer.java (original)
+++ tapestry/tapestry4/trunk/tapestry-portlet/src/test/org/apache/tapestry/portlet/TestPortletRenderer.java Tue Dec 19 14:55:21 2006
@@ -136,6 +136,8 @@
         
         expect(writer.getNestedWriter()).andReturn((NestedMarkupWriter)nested);
         
+        nested.flush();
+        
         MarkupWriterSource source = newSource(pw, ct, writer);
         IPage page = newPage(ct);
         AssetFactory assetFactory = newAssetFactory();