NavigationItem: fall back to the default renderer if an error occurrs

fixes #10486
This commit is contained in:
Alexander A. Klimov 2016-04-25 15:26:08 +02:00
parent d0cd03f324
commit eecd15ee68
1 changed files with 15 additions and 1 deletions

View File

@ -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);
}
}
/**