On Thu, 4 Dec 2008, Mark Stosberg wrote:
Actually now that I've looked at it, I think the problem is actually in
CGI::Application not ::Server. The query object is initialized in new()
shouldn't this actually happen in run()?
I would say the bug is here, in CGI::Application::Server
Well...
if (!defined blessed $target) {
return $self->_serve_response($target->new->run);
} else {
# Missing line:
$target->cgiapp_get_query;
return $self->_serve_response($target->run);
}
This still didn't work with the example script in my previous message.
The same problems were exhibited.
The calling of cgiapp_get_query *is* delayed until run()... really until the
first time you call "query()". There is no way to detect you need a fresh query
object. The server needs to take care of that.
On further investigation, the server provides a query object called $cgi
which needs to be passed to the CGI::Application object. You can do this
in new() with the QUERY parameter but there doesn't seem to be a way to do
so after the object is created but before it is run. What I did instead
was:
if (!defined blessed $target) {
return $self->_serve_response($target->new->run);
} else {
$target->{__QUERY_OBJ} = $cgi; # <-- works but not ideal
return $self->_serve_response($target->run);
}
}
it is not a good idea to be mucking about with CGI::Application internals
like that so there ought to be a cgiapp_set_query to use in these
(admittedly rare) situations.
--
Jaldhar H. Vyas <[EMAIL PROTECTED]>
##### 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/ ##
## ##
################################################################