From 268816f26cc3d49a0878ba796d7af290b1b7bf06 Mon Sep 17 00:00:00 2001 From: Viet Pham Date: Thu, 29 Oct 2020 16:58:29 +0700 Subject: [PATCH] [Cache] Fixed expiry maybe int due too race conditions --- src/Symfony/Component/Cache/Adapter/ChainAdapter.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Cache/Adapter/ChainAdapter.php b/src/Symfony/Component/Cache/Adapter/ChainAdapter.php index 4c086c3d55..a045a5d5a1 100644 --- a/src/Symfony/Component/Cache/Adapter/ChainAdapter.php +++ b/src/Symfony/Component/Cache/Adapter/ChainAdapter.php @@ -74,7 +74,11 @@ class ChainAdapter implements AdapterInterface, CacheInterface, PruneableInterfa $item->metadata = $item->newMetadata = $sourceItem->metadata = $sourceMetadata; if (isset($item->metadata[CacheItem::METADATA_EXPIRY])) { - $item->expiresAt(\DateTime::createFromFormat('U.u', $item->metadata[CacheItem::METADATA_EXPIRY])); + if (\is_int($expiry = $item->metadata[CacheItem::METADATA_EXPIRY])) { + $item->expiresAt(\DateTime::createFromFormat('U', $expiry)); + } else { + $item->expiresAt(\DateTime::createFromFormat('U.u', sprintf('%.3F', $expiry))); + } } elseif (0 < $defaultLifetime) { $item->expiresAfter($defaultLifetime); }