[BUGFIX] Performance issue with caching empty text menus 59/38159/2
authorOliver Hader <oliver@typo3.org>
Wed, 25 Mar 2015 12:10:27 +0000 (13:10 +0100)
committerOliver Hader <oliver.hader@typo3.org>
Wed, 25 Mar 2015 12:17:58 +0000 (13:17 +0100)
If a text menu level is defined in TypoScript but does not
return any pages, the result value is NULL instead of the
expected empty array. Since the check whether to reprocess
a menu expects an array, the generation process is triggered
again, invalidates the cache entry and adds the very same NULL
value to the cache.

The solution is to define a default empty array value for text
menu levels.

Resolves: #66023
Releases: 6.2
Change-Id: I66abb6fe7c1a91544b02193573ec601fb3240d98
Reviewed-on: http://review.typo3.org/38159
Reviewed-by: Oliver Hader <oliver.hader@typo3.org>
Tested-by: Oliver Hader <oliver.hader@typo3.org>
typo3/sysext/frontend/Classes/ContentObject/Menu/TextMenuContentObject.php

index 8af39de..441f9ee 100644 (file)
@@ -30,6 +30,7 @@ class TextMenuContentObject extends \TYPO3\CMS\Frontend\ContentObject\Menu\Abstr
         * @todo Define visibility
         */
        public function generate() {
+               $NOconf = array();
                $splitCount = count($this->menuArr);
                if ($splitCount) {
                        list($NOconf) = $this->procesItemStates($splitCount);