X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/55dda7b18497afde3ef379fc091761137f16c4c1..c9a4ec5e63cb07ff9254ee98eef2f85cd16c4275:/app/controllers/application_controller.rb diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 745765551..ea5d450a4 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,4 +1,5 @@ class ApplicationController < ActionController::Base + include SessionPersistence protect_from_forgery @@ -266,7 +267,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}") @@ -300,7 +301,13 @@ class ApplicationController < ActionController::Base yield end rescue ActionView::Template::Error => ex - if ex.original_exception.is_a?(Timeout::Error) + 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