diff --git a/actionpack/lib/action_controller/metal/params_wrapper.rb b/actionpack/lib/action_controller/metal/params_wrapper.rb index 439490f6ea..527a7b47e1 100644 --- a/actionpack/lib/action_controller/metal/params_wrapper.rb +++ b/actionpack/lib/action_controller/metal/params_wrapper.rb @@ -281,7 +281,10 @@ def _wrapper_enabled? return false unless request.has_content_type? ref = request.content_mime_type.ref + _wrapper_formats.include?(ref) && _wrapper_key && !request.parameters.key?(_wrapper_key) + rescue ActionDispatch::Http::Parameters::ParseError + false end def _perform_parameter_wrapping @@ -295,8 +298,6 @@ def _perform_parameter_wrapping # This will display the wrapped hash in the log file. request.filtered_parameters.merge! wrapped_filtered_hash - rescue ActionDispatch::Http::Parameters::ParseError - # swallow parse error exception end end end diff --git a/actionpack/test/controller/rescue_test.rb b/actionpack/test/controller/rescue_test.rb index 538bc15fc9..fe691af2ae 100644 --- a/actionpack/test/controller/rescue_test.rb +++ b/actionpack/test/controller/rescue_test.rb @@ -33,6 +33,8 @@ class ResourceUnavailable < StandardError class ResourceUnavailableToRescueAsString < StandardError end + wrap_parameters format: :json + # We use a fully qualified name in some strings, and a relative constant # name in some other to test correct handling of both cases.