Hi Michael

On 16/05/12 00:17, Michael Lackhoff wrote:
> There seems to be something wrong (or at least not very robust) in
> CAP::Dispatch::http_error(). It has the following code:
>
>      warn '[Dispatch] ERROR'
>        . ($ENV{REQUEST_URI} ? " for request '$ENV{REQUEST_URI}': " : ': ')
>        . $e->error . "\n";
>
> I guess $e is expected to be an Exception::Class object with an error
> method but when a run mode dies the error seems to be passed as a string
> not an object. So it dies again at this line in http_error with the
> following log message (line numbers slightly different due to a few
> added debug statements):

Yes - I remember struggling with this when I forked CGI:App and 
CGI::App::Dispatch to produce CGI::Snapp and CGI::Snapp::Dispatch.

The problem starts with CAP::Dispatch V 2.18 line 406:
         $output = $self->_run_app($module, $rm, $local_args_to_new);
which at least tells you the app got as far as starting.

In V 3.07, that's line 405.

Then, in _run_app(), lines 713 .. 716 say:
               # otherwise, just pass it up the chain
         } else {
             die $@;
         }
which tells you the code /in this case/ does not call throw_*.

And in V 3.07 that's lines 716 .. 719.

Conclusion: Either way, you're stuffed :-(.

If you don't want to switch to CGI::Snapp etc, or can't, I'd suggest not 
relying on that exception code at all.

Rather: Just do what I did with the re-writes: Add logging code at the 
start of all the major subs, which will simply if crudely tell you 
exactly how far the code is getting before it dies.

HTH

-- 
Ron Savage
http://savage.net.au/
Ph: 0421 920 622

#####  CGI::Application community mailing list  ################
##                                                            ##
##  To unsubscribe, or change your message delivery options,  ##
##  visit:  http://www.erlbaum.net/mailman/listinfo/cgiapp    ##
##                                                            ##
##  Web archive:   http://www.erlbaum.net/pipermail/cgiapp/   ##
##  Wiki:          http://cgiapp.erlbaum.net/                 ##
##                                                            ##
################################################################

Reply via email to