From: <pdu...@so...> - 2004-05-13 17:39:13
|
Hi, Please take a look at line 968 of PageKit.pm: 966: $default_code_perl_sub = undef unless (defined &$default_code_perl_sub); 967: > 968: my @subs = grep { $_ } ( $default_code_perl_sub, $pk->page_sub ); 969: return $pk->call_model_code(@subs) if (@subs); Spotted it? ;-) Here's the bug described in <perl> if ($default_code_perl_sub eg $pk->page_sub) { # @subs == ($default_code_perl_sub, $default_code_perl_sub), # which means the model code for $default_code_perl_sub will be # run twice! } </perl> I suggest changing line 968 to: 968: my @subs = grep { $_ } ( $pk->page_sub ) || ( $default_code_perl_sub ); This bug is potentially quite nasty, if some of the following is done in the default code: - state keeping - logging - db-write actions like updates, inserts and deletes. cu -- Pieter |