X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/b9c9d6c1aafdd60c72b54345b4d2dc94317298a0..30caa3c09ee2108fa5ed77883e4d658d4b58d9af:/config/initializers/abstract_adapter.rb?ds=sidebyside
diff --git a/config/initializers/abstract_adapter.rb b/config/initializers/abstract_adapter.rb
index d96742ee5..9d59656c7 100644
--- a/config/initializers/abstract_adapter.rb
+++ b/config/initializers/abstract_adapter.rb
@@ -1,28 +1,17 @@
-if defined?(ActiveRecord::ConnectionAdaptors::AbstractAdaptor)
- 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
+if defined?(ActiveRecord::ConnectionAdaptors::AbstractAdapter)
+ module OpenStreetMap
+ module AbstractAdapter
+ module PropagateTimeouts
+ def translate_exception_class(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
+ super
end
end
end
end
end
+
+ ActiveRecord::ConnectionAdaptors::AbstractAdapter.prepend(OpenStreetMap::AbstractAdapter::PropagateTimeouts)
end