diff --git a/library/Icinga/Web/Navigation/NavigationItem.php b/library/Icinga/Web/Navigation/NavigationItem.php index c699a6d00..0f31a4209 100644 --- a/library/Icinga/Web/Navigation/NavigationItem.php +++ b/library/Icinga/Web/Navigation/NavigationItem.php @@ -7,6 +7,7 @@ use Exception; use InvalidArgumentException; use IteratorAggregate; use Icinga\Application\Icinga; +use Icinga\Application\Logger; use Icinga\Exception\IcingaException; use Icinga\Exception\ProgrammingError; use Icinga\Web\Navigation\Renderer\NavigationItemRenderer; @@ -815,7 +816,20 @@ class NavigationItem implements IteratorAggregate */ public function render() { - return $this->getRenderer()->setItem($this)->render(); + try { + return $this->getRenderer()->setItem($this)->render(); + } catch (Exception $e) { + Logger::error( + 'Could not invoke custom navigation item renderer. %s in %s:%d with message: %s', + get_class($e), + $e->getFile(), + $e->getLine(), + $e->getMessage() + ); + + $renderer = new NavigationItemRenderer(); + return $renderer->render($this); + } } /**