/**
  * @param \TYPO3\Flow\Aop\JoinPoint $joinPoint
  * @Flow\Around("method(TYPO3\Flow\Mvc\Routing\RouterCachingService->buildRouteCacheIdentifier())")
  * @return string
  */
 public function buildRouteCacheIdentifierWithAcceptHeader(\TYPO3\Flow\Aop\JoinPoint $joinPoint)
 {
     /** @var \TYPO3\Flow\Http\Request $httpRequest */
     $httpRequest = $joinPoint->getMethodArgument('httpRequest');
     $mediaTypes = $httpRequest->getAcceptedMediaTypes();
     if (FALSE !== ($wildcard = array_search('*/*', $mediaTypes))) {
         $mediaTypes[$wildcard] = $this->defaultMediaType;
         $mediaTypes = array_unique($mediaTypes);
     }
     $commonTypes = array_intersect($this->allowedMediaTypes, $mediaTypes);
     return md5(sprintf('%s_%s_%s_%s', $httpRequest->getUri()->getHost(), $httpRequest->getRelativePath(), $httpRequest->getMethod(), implode('_', $commonTypes)));
 }
 /**
  * @Flow\AfterThrowing("within(TYPO3\Fluid\Core\ViewHelper\AbstractViewHelper) && method(.*->render())")
  * @param \TYPO3\Flow\Aop\JoinPoint $joinPoint
  */
 public function catchException(\TYPO3\Flow\Aop\JoinPoint $joinPoint)
 {
     $exception = $joinPoint->getException();
     $this->errorHandler->handleException($exception);
 }
 /**
  * @Flow\AfterThrowing("Ttree\Scheduler\Aspect\LoggingAspect->allTasks")
  * @param JoinPoint $jointPoint
  * @throws \Exception
  */
 public function logTaskException(JoinPoint $jointPoint)
 {
     /** @var Task $task */
     $exception = $jointPoint->getException();
     $this->systemLogger->logException($exception, array('task' => $jointPoint->getClassName()));
 }