X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst.pm;h=4e62289370c2e06f04a5eb1b9bb2d66a2db3dd14;hb=629e1f46e06940d2ee1e0c9f4dece7ce8d471b72;hp=0dd64a05c4aa3b998215b6a739aba17b9cd41d02;hpb=1d4df70b12006c9803f80e46d435a1f2610b75f1;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 0dd64a0..4e62289 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -113,7 +113,7 @@ __PACKAGE__->stats_class('Catalyst::Stats'); # Remember to update this in Catalyst::Runtime as well! -our $VERSION = '5.90030'; +our $VERSION = '5.90040'; sub import { my ( $class, @arguments ) = @_; @@ -1793,6 +1793,14 @@ sub finalize { $c->log->error($error); } + # Support skipping finalize for psgix.io style 'jailbreak'. Used to support + # stuff like cometd and websockets + + if($c->request->has_io_fh) { + $c->log_response; + return; + } + # Allow engine to handle finalize flow (for POE) my $engine = $c->engine; if ( my $code = $engine->can('finalize') ) { @@ -2983,9 +2991,13 @@ the plugin name does not begin with C. $plugins = [ grep { m/Unicode::Encoding/ ? do { $class->log->warn( - 'Unicode::Encoding plugin is now part of core,' + 'Unicode::Encoding plugin is auto-applied,' . ' please remove this from your appclass' + . ' and make sure to define "encoding" config' ); + unless (exists $class->config->{'encoding'}) { + $class->config->{'encoding'} = 'UTF-8'; + } () } : $_ } @$plugins ]; @@ -3181,7 +3193,7 @@ is having paths rewritten into it (e.g. as a .cgi/fcgi in a public_html director at other URIs than that which the app is 'normally' based at with C), the resolution of C<< $c->request->base >> will be incorrect. -=back +=back =item * @@ -3191,6 +3203,23 @@ C - See L. C - See L +=item * + +C + +When there is an error in an action chain, the default behavior is to continue +processing the remaining actions and then catch the error upon chain end. This +can lead to running actions when the application is in an unexpected state. If +you have this issue, setting this config value to true will promptly exit a +chain when there is an error raised in any action (thus terminating the chain +early.) + +use like: + + __PACKAGE__->config(abort_chain_on_error_fix => 1); + +In the future this might become the default behavior. + =back =head1 INTERNAL ACTIONS