X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/d4954bc7b1bc06431bea4e97af401e3ea6acd0e6..3f59e829264f2f1b4897c6d2c1bd93abe8f52c24:/config/initializers/abstract_adapter.rb diff --git a/config/initializers/abstract_adapter.rb b/config/initializers/abstract_adapter.rb index cfa32e4e9..6bb5d10c0 100644 --- a/config/initializers/abstract_adapter.rb +++ b/config/initializers/abstract_adapter.rb @@ -1,23 +1,20 @@ -module ActiveRecord - module ConnectionAdapters - class AbstractAdapter - protected - alias_method :old_log, :log +if defined?(ActiveRecord::ConnectionAdaptors::AbstractAdapter) + module ActiveRecord + module ConnectionAdapters + class AbstractAdapter + protected - def log(sql, name) - if block_given? - old_log(sql, name) do - yield + alias old_log log + + def translate_exception_class_with_timeout(e, sql) + if e.is_a?(Timeout::Error) || e.is_a?(OSM::APITimeoutError) + e + else + translate_exception_class_without_timeout(e, sql) end - else - old_log(sql, name) - end - rescue ActiveRecord::StatementInvalid => ex - if ex =~ /^OSM::APITimeoutError: / - raise OSM::APITimeoutError.new - else - raise end + + alias_method_chain :translate_exception_class, :timeout end end end