Skip to content

Commit b07440c

Browse files
committed
MC-39463: GraphQL caches urlResolver response and can return the old value after the url rewrite update
1 parent 375fd4c commit b07440c

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

app/code/Magento/UrlRewrite/Model/UrlRewrite.php

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -145,23 +145,27 @@ public function setMetadata($metadata)
145145
*/
146146
private function getFinalTargetUrlRewrite(string $path, int $storeId): ?UrlRewriteService
147147
{
148+
$urlRewriteTarget = $this->urlFinder->findOneByData(
149+
[
150+
'request_path' => $path,
151+
'store_id' => $storeId
152+
]
153+
);
154+
155+
while (
156+
$urlRewriteTarget &&
157+
$urlRewriteTarget->getTargetPath() !== $urlRewriteTarget->getRequestPath() &&
158+
$urlRewriteTarget->getRedirectType() > 0
159+
) {
148160
$urlRewriteTarget = $this->urlFinder->findOneByData(
149161
[
150-
'request_path' => $path,
151-
'store_id' => $storeId
162+
'request_path' => $urlRewriteTarget->getTargetPath(),
163+
'store_id' => $urlRewriteTarget->getStoreId()
152164
]
153165
);
166+
}
154167

155-
while ($urlRewriteTarget && $urlRewriteTarget->getRedirectType() > 0) {
156-
$urlRewriteTarget = $this->urlFinder->findOneByData(
157-
[
158-
'request_path' => $urlRewriteTarget->getTargetPath(),
159-
'store_id' => $urlRewriteTarget->getStoreId()
160-
]
161-
);
162-
}
163-
164-
return $urlRewriteTarget;
168+
return $urlRewriteTarget;
165169
}
166170

167171
/**

0 commit comments

Comments
 (0)