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();