diff --git a/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php b/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php index 949950f..663c0d6 100644 --- a/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php +++ b/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php @@ -252,7 +252,9 @@ protected function getServiceDefinition(Definition $definition) { } } - $service['shared'] = $definition->isShared(); + if ($definition->isShared() === FALSE) { + $service['shared'] = $definition->isShared(); + } if (($decorated = $definition->getDecoratedService()) !== NULL) { throw new InvalidArgumentException("The 'decorated' definition is not supported by the Drupal 8 run-time container. The Container Builder should have resolved that during the DecoratorServicePass compiler pass."); diff --git a/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php b/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php index ca9a2e4..5a4e57f 100644 --- a/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php +++ b/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php @@ -358,6 +358,10 @@ public function getDefinitionsDataProvider() { 'shared' => FALSE, ) + $base_service_definition; + $service_definitions[] = array( + 'shared' => FALSE, + ) + $base_service_definition; + // Test factory. $service_definitions[] = array( 'factory' => array(new Reference('bar'), 'factoryMethod'), @@ -397,6 +401,7 @@ public function getDefinitionsDataProvider() { $definition->getProperties()->willReturn($service_definition['properties']); $definition->getMethodCalls()->willReturn($service_definition['calls']); $definition->getScope()->willReturn($service_definition['scope']); + $definition->isShared()->willReturn($service_definition['shared']); $definition->getDecoratedService()->willReturn(NULL); $definition->getFactory()->willReturn($service_definition['factory']); $definition->getConfigurator()->willReturn($service_definition['configurator']);