diff --git a/eZ/Bundle/EzPublishCoreBundle/Routing/DefaultRouter.php b/eZ/Bundle/EzPublishCoreBundle/Routing/DefaultRouter.php index b5715a6c0b6..414ab9b4ec9 100644 --- a/eZ/Bundle/EzPublishCoreBundle/Routing/DefaultRouter.php +++ b/eZ/Bundle/EzPublishCoreBundle/Routing/DefaultRouter.php @@ -16,6 +16,7 @@ use eZ\Publish\Core\MVC\Symfony\SiteAccess\URILexer; use Symfony\Bundle\FrameworkBundle\Routing\Router; use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\Routing\Exception\RouteNotFoundException; use Symfony\Component\Routing\Matcher\RequestMatcherInterface; /** @@ -95,7 +96,13 @@ public function generate($name, $parameters = array(), $referenceType = self::AB unset($parameters['siteaccess']); } - $url = parent::generate($name, $parameters, $referenceType); + try { + $url = parent::generate($name, $parameters, $referenceType); + } catch (RouteNotFoundException $e) { + // Switch back to original context, for next links generation. + $this->setContext($originalContext); + throw $e; + } // Now putting back SiteAccess URI if needed. if ($isSiteAccessAware && $siteAccess && $siteAccess->matcher instanceof URILexer) {