- if (!$container->hasDefinition($parent = $definition->getParent())) {
- throw new RuntimeException(sprintf('The parent definition "%s" defined for definition "%s" does not exist.', $parent, $this->currentId));
+ try {
+ return $this->doResolveDefinition($container, $definition);
+ } catch (ExceptionInterface $e) {
+ $r = new \ReflectionProperty($e, 'message');
+ $r->setAccessible(true);
+ $r->setValue($e, sprintf('Service "%s": %s', $this->currentId, $e->getMessage()));
+
+ throw $e;
+ }
+ }
+
+ private function doResolveDefinition(ContainerBuilder $container, DefinitionDecorator $definition)
+ {
+ if (!$container->has($parent = $definition->getParent())) {
+ throw new RuntimeException(sprintf('Parent definition "%s" does not exist.', $parent));