diff --git a/typo3/sysext/backend/Classes/Utility/BackendUtility.php b/typo3/sysext/backend/Classes/Utility/BackendUtility.php index f010560e0afac2a4f3c31d42d844f1256c77a352..af4d1bca06b9bcb8d221db9db817fe6626ef7288 100644 --- a/typo3/sysext/backend/Classes/Utility/BackendUtility.php +++ b/typo3/sysext/backend/Classes/Utility/BackendUtility.php @@ -412,11 +412,12 @@ class BackendUtility { $runtimeCache = GeneralUtility::makeInstance(CacheManager::class)->getCache('runtime'); $pageForRootlineCache = $runtimeCache->get('backendUtilityPageForRootLine') ?: []; - $ident = $uid . '-' . $clause . '-' . $workspaceOL . ($additionalFields ? '-' . md5(implode(',', $additionalFields)) : ''); + $statementCacheIdent = md5($clause . ($additionalFields ? '-' . implode(',', $additionalFields) : '')); + $ident = $uid . '-' . $workspaceOL . '-' . $statementCacheIdent; if (is_array($pageForRootlineCache[$ident] ?? false)) { $row = $pageForRootlineCache[$ident]; } else { - $statement = $runtimeCache->get('getPageForRootlineStatement'); + $statement = $runtimeCache->get('getPageForRootlineStatement-' . $statementCacheIdent); if (!$statement) { $queryBuilder = static::getQueryBuilderForTable('pages'); $queryBuilder->getRestrictions() @@ -454,7 +455,7 @@ class BackendUtility QueryHelper::stripLogicalOperatorPrefix($clause) ); $statement = $queryBuilder->execute(); - $runtimeCache->set('getPageForRootlineStatement', $statement); + $runtimeCache->set('getPageForRootlineStatement-' . $statementCacheIdent, $statement); } else { $statement->bindValue(1, (int)$uid); $statement->execute();