Author: randyk Date: Thu Aug 24 19:15:23 2006 New Revision: 436617 URL: http://svn.apache.org/viewvc?rev=436617&view=rev Log: Fix bug concerning 'error-notes' having no value on errordocument redirect [supplied by Guy Albertelli II <[EMAIL PROTECTED]>].
Added: perl/modperl/trunk/t/hooks/TestHooks/error.pm perl/modperl/trunk/t/hooks/error.t Modified: perl/modperl/trunk/Changes perl/modperl/trunk/src/modules/perl/modperl_callback.c Modified: perl/modperl/trunk/Changes URL: http://svn.apache.org/viewvc/perl/modperl/trunk/Changes?rev=436617&r1=436616&r2=436617&view=diff ============================================================================== --- perl/modperl/trunk/Changes (original) +++ perl/modperl/trunk/Changes Thu Aug 24 19:15:23 2006 @@ -12,6 +12,10 @@ =item 2.0.3-dev +Fix bug concerning 'error-notes' having no value on +errordocument redirect. +[Guy Albertelli II <[EMAIL PROTECTED]>] + Multi-line $PerlConfig is now working [Gozer] PerlOptions None was previously incorrectly reported as invalid Modified: perl/modperl/trunk/src/modules/perl/modperl_callback.c URL: http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/modperl_callback.c?rev=436617&r1=436616&r2=436617&view=diff ============================================================================== --- perl/modperl/trunk/src/modules/perl/modperl_callback.c (original) +++ perl/modperl/trunk/src/modules/perl/modperl_callback.c Thu Aug 24 19:15:23 2006 @@ -130,7 +130,7 @@ if (status == HTTP_INTERNAL_SERVER_ERROR) { if (r && r->notes) { - apr_table_mergen(r->notes, "error-notes", SvPV_nolen(ERRSV)); + apr_table_merge(r->notes, "error-notes", SvPV_nolen(ERRSV)); } } Added: perl/modperl/trunk/t/hooks/TestHooks/error.pm URL: http://svn.apache.org/viewvc/perl/modperl/trunk/t/hooks/TestHooks/error.pm?rev=436617&view=auto ============================================================================== --- perl/modperl/trunk/t/hooks/TestHooks/error.pm (added) +++ perl/modperl/trunk/t/hooks/TestHooks/error.pm Thu Aug 24 19:15:23 2006 @@ -0,0 +1,43 @@ +package TestHooks::error; + +use strict; +use warnings FATAL => 'all'; + +use Apache::Test; + +use Apache2::RequestRec (); +use Apache2::RequestIO (); + +use Apache2::Const -compile => 'OK'; + +use APR::Table (); + +sub handler { + my $r = shift; + my $args = $r->args(); + if (defined($args) && $args ne '') { + $r->notes->set('error-notes' => $args); + } + &bomb(); + Apache2::Const::OK; +} + +sub fail { + my $r = shift; + $r->print('Error: '.$r->prev->notes->get('error-notes')); + Apache2::Const::OK; +} + +1; +__DATA__ +<NoAutoConfig> + <Location /TestHooks__error> + SetHandler modperl + PerlResponseHandler TestHooks::error + ErrorDocument 500 /TestHooks__error__fail + </Location> + <Location /TestHooks__error__fail> + SetHandler modperl + PerlResponseHandler TestHooks::error::fail + </Location> +</NoAutoConfig> Added: perl/modperl/trunk/t/hooks/error.t URL: http://svn.apache.org/viewvc/perl/modperl/trunk/t/hooks/error.t?rev=436617&view=auto ============================================================================== --- perl/modperl/trunk/t/hooks/error.t (added) +++ perl/modperl/trunk/t/hooks/error.t Thu Aug 24 19:15:23 2006 @@ -0,0 +1,27 @@ +use strict; +use warnings FATAL => 'all'; + +use Apache::Test; +use Apache::TestUtil; +use Apache::TestRequest; + +plan tests => 2; + +{ + # this registers and performs cleanups, but we test whether the + # cleanup was run only in the next sub-test + my $location = "/TestHooks__error"; + my $expected = qr/^Error: Undefined subroutine/; + my $received = GET_BODY $location; + ok t_cmp($received, $expected, "error-notes set on ErrorDocument"); +} + +{ + # this registers and performs cleanups, but we test whether the + # cleanup was run only in the next sub-test + my $error_seed_text = 'seed_text'; + my $location = "/TestHooks__error?$error_seed_text"; + my $expected = qr/^Error: \Q$error_seed_text\E, Undefined subroutine/; + my $received = GET_BODY $location; + ok t_cmp($received, $expected, "seeded error-notes set on ErrorDocument"); +}