Move prepare_action call into try block
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Engine.pm
index 84c75e9..1e56bdc 100644 (file)
@@ -45,9 +45,12 @@ has _response_cb => (
     predicate => '_has_response_cb',
 );
 
+subtype 'Catalyst::Engine::Types::Writer',
+    as duck_type([qw(write close)]);
+
 has _writer => (
     is      => 'ro',
-    isa     => duck_type([qw(write close)]),
+    isa     => 'Catalyst::Engine::Types::Writer',
     writer  => '_set_writer',
     clearer => '_clear_writer',
 );
@@ -128,6 +131,11 @@ sub finalize_cookies {
                 -httponly => $val->{httponly} || 0,
             )
         );
+        if (!defined $cookie) {
+            $c->log->warn("undef passed in '$name' cookie value - not setting cookie")
+                if $c->debug;
+            next;
+        }
 
         push @cookies, $cookie->as_string;
     }