/**
  * Autogenerated Proxy Method
  * @param string $reason A reason for destroying the session – used by the LoggingAspect
  * @return void
  * @throws \TYPO3\Flow\Session\Exception
  * @throws \TYPO3\Flow\Session\Exception\SessionNotStartedException
  */
 public function destroy($reason = NULL)
 {
     // FIXME this can be removed again once Doctrine is fixed (see fixMethodsAndAdvicesArrayForDoctrineProxiesCode())
     $this->Flow_Aop_Proxy_fixMethodsAndAdvicesArrayForDoctrineProxies();
     if (isset($this->Flow_Aop_Proxy_methodIsInAdviceMode['destroy'])) {
         $result = parent::destroy($reason);
     } else {
         $this->Flow_Aop_Proxy_methodIsInAdviceMode['destroy'] = TRUE;
         try {
             $methodArguments = array();
             $methodArguments['reason'] = $reason;
             if (isset($this->Flow_Aop_Proxy_targetMethodsAndGroupedAdvices['destroy']['TYPO3\\Flow\\Aop\\Advice\\BeforeAdvice'])) {
                 $advices = $this->Flow_Aop_Proxy_targetMethodsAndGroupedAdvices['destroy']['TYPO3\\Flow\\Aop\\Advice\\BeforeAdvice'];
                 $joinPoint = new \TYPO3\Flow\Aop\JoinPoint($this, 'TYPO3\\Flow\\Session\\Session', 'destroy', $methodArguments);
                 foreach ($advices as $advice) {
                     $advice->invoke($joinPoint);
                 }
                 $methodArguments = $joinPoint->getMethodArguments();
             }
             $joinPoint = new \TYPO3\Flow\Aop\JoinPoint($this, 'TYPO3\\Flow\\Session\\Session', 'destroy', $methodArguments);
             $result = $this->Flow_Aop_Proxy_invokeJoinPoint($joinPoint);
             $methodArguments = $joinPoint->getMethodArguments();
         } catch (\Exception $e) {
             unset($this->Flow_Aop_Proxy_methodIsInAdviceMode['destroy']);
             throw $e;
         }
         unset($this->Flow_Aop_Proxy_methodIsInAdviceMode['destroy']);
     }
     return $result;
 }