finalize session earlier
John Napiorkowski [Mon, 26 Jan 2015 22:49:29 +0000 (16:49 -0600)]
lib/Catalyst/Plugin/Session.pm

index 8733eb8..5500182 100644 (file)
@@ -111,17 +111,20 @@ sub finalize_headers {
     # up to date. First call to session_expires will extend the expiry, subs
     # just return the previously extended value.
     $c->session_expires;
+    $c->finalize_session;
 
     return $c->maybe::next::method(@_);
 }
 
+sub _needs_early_session_finalization { 0 }
+
 sub finalize_body {
     my $c = shift;
 
     # We have to finalize our session *before* $c->engine->finalize_xxx is called,
     # because we do not want to send the HTTP response before the session is stored/committed to
     # the session database (or whatever Session::Store you use).
-    $c->finalize_session;
+    $c->_clear_session_instance_data;
 
     return $c->maybe::next::method(@_);
 }
@@ -135,7 +138,6 @@ sub finalize_session {
     $c->_save_session;
     $c->_save_flash;
 
-    $c->_clear_session_instance_data;
 }
 
 sub _session_updated {