Merge pull request #16912 from yuki24/rescue-rack-parameter-type-error

Rescue `Rack::Utils::ParameterTypeError` instead of `TypeError`
This commit is contained in:
Jeremy Kemper 2014-09-13 18:02:45 -07:00
commit e47b3e15ed
2 changed files with 5 additions and 5 deletions

@ -298,7 +298,7 @@ def session_options=(options)
# Override Rack's GET method to support indifferent access
def GET
@env["action_dispatch.request.query_parameters"] ||= Utils.deep_munge(normalize_encode_params(super || {}))
rescue TypeError, Rack::Utils::InvalidParameterError => e
rescue Rack::Utils::ParameterTypeError, Rack::Utils::InvalidParameterError => e
raise ActionController::BadRequest.new(:query, e)
end
alias :query_parameters :GET
@ -306,7 +306,7 @@ def GET
# Override Rack's POST method to support indifferent access
def POST
@env["action_dispatch.request.request_parameters"] ||= Utils.deep_munge(normalize_encode_params(super || {}))
rescue TypeError, Rack::Utils::InvalidParameterError => e
rescue Rack::Utils::ParameterTypeError, Rack::Utils::InvalidParameterError => e
raise ActionController::BadRequest.new(:request, e)
end
alias :request_parameters :POST

@ -915,7 +915,7 @@ class RequestParameters < BaseRequestTest
2.times do
assert_raises(ActionController::BadRequest) do
# rack will raise a TypeError when parsing this query string
# rack will raise a Rack::Utils::ParameterTypeError when parsing this query string
request.parameters
end
end
@ -941,7 +941,7 @@ class RequestParameters < BaseRequestTest
)
assert_raises(ActionController::BadRequest) do
# rack will raise a TypeError when parsing this query string
# rack will raise a Rack::Utils::ParameterTypeError when parsing this query string
request.parameters
end
end
@ -950,7 +950,7 @@ class RequestParameters < BaseRequestTest
request = stub_request("QUERY_STRING" => "x[y]=1&x[y][][w]=2")
e = assert_raises(ActionController::BadRequest) do
# rack will raise a TypeError when parsing this query string
# rack will raise a Rack::Utils::ParameterTypeError when parsing this query string
request.parameters
end