X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/b9c9d6c1aafdd60c72b54345b4d2dc94317298a0..8b68acec3e9d2ecc893371c77e58b0ecad596cbf:/config/initializers/abstract_adapter.rb?ds=sidebyside diff --git a/config/initializers/abstract_adapter.rb b/config/initializers/abstract_adapter.rb index d96742ee5..6bb5d10c0 100644 --- a/config/initializers/abstract_adapter.rb +++ b/config/initializers/abstract_adapter.rb @@ -1,27 +1,20 @@ -if defined?(ActiveRecord::ConnectionAdaptors::AbstractAdaptor) +if defined?(ActiveRecord::ConnectionAdaptors::AbstractAdapter) module ActiveRecord module ConnectionAdapters class AbstractAdapter - protected - alias_method :old_log, :log - - def log(sql, name) - if block_given? - old_log(sql, name) do - yield - end + protected + + 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 - old_log(sql, name) - end - rescue ActiveRecord::StatementInvalid => ex - if ex.message =~ /^OSM::APITimeoutError: / - raise OSM::APITimeoutError.new - elsif ex.message =~ /^Timeout::Error: / - raise Timeout::Error.new("time's up!") - else - raise + translate_exception_class_without_timeout(e, sql) end end + + alias_method_chain :translate_exception_class, :timeout end end end