@@ -52,18 +52,26 @@ public function process(ContainerBuilder $container)
5252 }
5353 $ config = $ resolvingBag ->resolveValue ($ config );
5454
55- $ tmpContainer = new ContainerBuilder ($ resolvingBag );
56- $ tmpContainer ->setResourceTracking ($ container ->isTrackingResources ());
57- $ tmpContainer ->addObjectResource ($ extension );
58- if ($ extension instanceof ConfigurationExtensionInterface && null !== $ configuration = $ extension ->getConfiguration ($ config , $ tmpContainer )) {
59- $ tmpContainer ->addObjectResource ($ configuration );
60- }
55+ try {
56+ $ tmpContainer = new ContainerBuilder ($ resolvingBag );
57+ $ tmpContainer ->setResourceTracking ($ container ->isTrackingResources ());
58+ $ tmpContainer ->addObjectResource ($ extension );
59+ if ($ extension instanceof ConfigurationExtensionInterface && null !== $ configuration = $ extension ->getConfiguration ($ config , $ tmpContainer )) {
60+ $ tmpContainer ->addObjectResource ($ configuration );
61+ }
6162
62- foreach ($ exprLangProviders as $ provider ) {
63- $ tmpContainer ->addExpressionLanguageProvider ($ provider );
64- }
63+ foreach ($ exprLangProviders as $ provider ) {
64+ $ tmpContainer ->addExpressionLanguageProvider ($ provider );
65+ }
6566
66- $ extension ->load ($ config , $ tmpContainer );
67+ $ extension ->load ($ config , $ tmpContainer );
68+ } catch (\Exception $ e ) {
69+ if ($ resolvingBag instanceof MergeExtensionConfigurationParameterBag) {
70+ $ container ->getParameterBag ()->mergeEnvPlaceholders ($ resolvingBag );
71+ }
72+
73+ throw $ e ;
74+ }
6775
6876 if ($ resolvingBag instanceof MergeExtensionConfigurationParameterBag) {
6977 // don't keep track of env vars that are *overridden* when configs are merged
0 commit comments