# File lib/cgikit/handler.rb, line 350
    def handle_request( request )
      super
      direct_action, action_name = action_and_action_name(request)

      result = response = nil
      @application.synchronize do
        result = direct_action.perform_action(action_name)
        unless result.respond_to?(:generate_response) then
          raise ActionResultError, \
          "Direct action must return an object has generate_response()" +
            " and not nil. - #{direct_action.class}##{action_name}"
        end
        response = result.generate_response
      end

      if Component === result then
        response.component = result
        if result.context.has_session? then
          @application.save_session(result.context)
        end
      end
      response
    end