diff --git a/core/lib/Drupal/Core/ParamConverter/ParamConverterManager.php b/core/lib/Drupal/Core/ParamConverter/ParamConverterManager.php index 953acfb..c25cc87 100644 --- a/core/lib/Drupal/Core/ParamConverter/ParamConverterManager.php +++ b/core/lib/Drupal/Core/ParamConverter/ParamConverterManager.php @@ -79,8 +79,15 @@ public function applyToRequest($controller, Request $request) { } $param_name = $param->getName(); + $param_value = $request->attributes->get($param_name); - $new_value = $this->convertTo($request->attributes->get($param_name), $param->getClass()->getName()); + // No need to convert parameters that are already the objects they should + // be. + if (is_object($param_value) && $param->getClass()->isInstance($param_value)) { + continue; + } + + $new_value = $this->convertTo($param_value, $param->getClass()->getName()); $request->attributes->set($param_name, $new_value); } }