From 2a33785d1114bfe83261f485168ac29824a718ab Mon Sep 17 00:00:00 2001 From: Doug Bell Date: Tue, 3 Aug 2010 17:02:39 -0500 Subject: [PATCH] fix streaming. don't close the session until done --- lib/WebGUI.pm | 4 ++++ lib/WebGUI/Middleware/Session.pm | 11 ++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/WebGUI.pm b/lib/WebGUI.pm index e24948317..224bb5839 100644 --- a/lib/WebGUI.pm +++ b/lib/WebGUI.pm @@ -97,6 +97,10 @@ sub call { # And finally, clean up $writer->close; + + # Close the session, because the WebGUI::Middleware::Session didn't + $session->close; + delete $env->{'webgui.session'}; } catch { if ($response->writer) { diff --git a/lib/WebGUI/Middleware/Session.pm b/lib/WebGUI/Middleware/Session.pm index 01153dea7..3b1e0d768 100644 --- a/lib/WebGUI/Middleware/Session.pm +++ b/lib/WebGUI/Middleware/Session.pm @@ -65,9 +65,14 @@ sub call { sub { my $res = shift; - # Close the Session - $env->{'webgui.session'}->close(); - delete $env->{'webgui.session'}; + # Close the Session if we aren't streaming + if ( !$env->{'webgui.session'}->response->streaming ) { + $env->{'webgui.session'}->close(); + delete $env->{'webgui.session'}; + } + + # If we are streaming, the session will be closed inside of + # WebGUI.pm } ); }