X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/00a605a2a877528ec3d4eabc6562e262c427b839..e2b185133ee03480d5bf5d66ca74944527841e95:/app/controllers/application_controller.rb diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index e64e2e022..3d3c11d79 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -266,7 +266,7 @@ class ApplicationController < ActionController::Base report_error message, :bad_request rescue OSM::APIError => ex report_error ex.message, ex.status - rescue ActionController::UnknownAction => ex + rescue AbstractController::ActionNotFound => ex raise rescue Exception => ex logger.info("API threw unexpected #{ex.class} exception: #{ex.message}") @@ -299,8 +299,14 @@ class ApplicationController < ActionController::Base OSM::Timer.timeout(WEB_TIMEOUT) do yield end - rescue ActionView::TemplateError => ex - if ex.original_exception.is_a?(Timeout::Error) + rescue ActionView::Template::Error => ex + ex = ex.original_exception + + if ex.is_a?(ActiveRecord::StatementInvalid) and ex.message =~ /^Timeout::Error/ + ex = Timeout::Error.new + end + + if ex.is_a?(Timeout::Error) render :action => "timeout" else raise