diff options
author | Dennis Taylor <dennis.taylor@clio.com> | 2017-07-05 15:21:25 -0700 |
---|---|---|
committer | Dennis Taylor <dennis.taylor@clio.com> | 2017-07-05 17:02:59 -0700 |
commit | ad0bde58d4e5dd3686fdbdc21c7e4b6d71e371e4 (patch) | |
tree | 2d267c1ae61cb23758cc4ed6ff1edf4a9d054460 /activerecord/lib/active_record/connection_adapters | |
parent | c8ce3459648ce0f86646b564ce1c0bb16a4b48eb (diff) | |
download | rails-ad0bde58d4e5dd3686fdbdc21c7e4b6d71e371e4.tar.gz rails-ad0bde58d4e5dd3686fdbdc21c7e4b6d71e371e4.tar.bz2 rails-ad0bde58d4e5dd3686fdbdc21c7e4b6d71e371e4.zip |
Don't translate non-database exceptions.
The AbstractAdapter will translate all StandardErrors generated during the course of a query into ActiveRecord::StatementInvalids. Unfortunately, it'll also mangle non-database-related errors generated in ActiveSupport::Notification callbacks after the query has successfully completed. This should prevent it from translating errors from ActiveSupport::Notifications.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract_adapter.rb | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb index cfe1892d78..30b29e7007 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb @@ -576,12 +576,14 @@ module ActiveRecord type_casted_binds: type_casted_binds, statement_name: statement_name, connection_id: object_id) do + begin @lock.synchronize do yield end + rescue => e + raise translate_exception_class(e, sql) end - rescue => e - raise translate_exception_class(e, sql) + end end def translate_exception(exception, message) |