diff options
Diffstat (limited to 'actionpack/lib/action_dispatch/middleware')
| -rw-r--r-- | actionpack/lib/action_dispatch/middleware/show_exceptions.rb | 13 | 
1 files changed, 13 insertions, 0 deletions
| diff --git a/actionpack/lib/action_dispatch/middleware/show_exceptions.rb b/actionpack/lib/action_dispatch/middleware/show_exceptions.rb index ef0c9c51f5..71e736ce9f 100644 --- a/actionpack/lib/action_dispatch/middleware/show_exceptions.rb +++ b/actionpack/lib/action_dispatch/middleware/show_exceptions.rb @@ -62,6 +62,7 @@ module ActionDispatch      private        def render_exception(env, exception)          log_error(exception) +        exception = original_exception(exception)          request = Request.new(env)          if @consider_all_requests_local || request.local? @@ -154,5 +155,17 @@ module ActionDispatch        def logger          defined?(Rails.logger) ? Rails.logger : Logger.new($stderr)        end + +    def original_exception(exception) +      if registered_original_exception?(exception) +        exception.original_exception +      else +        exception +      end +    end + +    def registered_original_exception?(exception) +      exception.respond_to?(:original_exception) && @@rescue_responses.has_key?(exception.original_exception.class.name) +    end    end  end | 
