def run( command_or_request = nil, response = nil )
if CGIKit.const_defined?(:Command) and \
CGIKit.const_get(:Command) === command_or_request then
request = command_or_request.request
else
request = command_or_request
end
set_adapter_and_handler
@adapter.run(request, response) do |request|
set_attributes_from_request(request)
request.request_handler_key = \
@default_request_handler.request_handler_key(request)
begin
handler = request_handler(request.request_handler_key)
request.context_id = handler.context_id(request)
response = handler.handle_request(request)
rescue Exception => e
request.session_id = nil
context = @context_class.new(request, self)
begin
response = handle_error(e, context)
rescue Exception => e
response = default_error_page(e, context)
end
end
response
end
response
end