From 8316bdaf747d34c0330be14b8d8247143c91f2d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Wed, 5 Jul 2023 20:50:45 +0200 Subject: [PATCH] Fix: Avoid null pointer exception --- .../ext/ep_products/Classes/Service/DateService.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/public/typo3conf/ext/ep_products/Classes/Service/DateService.php b/public/typo3conf/ext/ep_products/Classes/Service/DateService.php index fdc0722a..311f707d 100644 --- a/public/typo3conf/ext/ep_products/Classes/Service/DateService.php +++ b/public/typo3conf/ext/ep_products/Classes/Service/DateService.php @@ -125,7 +125,10 @@ class DateService implements SingletonInterface $filterSettings = $this->filterService->getNormalizedFilterSettings(); } - $key = 'pricetable_'.sha1($product->getUid().$hotel->getUid().serialize($filterSettings).$date ? $date->getUid():0); + $keyValues = $product->getUid().$hotel->getUid().serialize($filterSettings); + $keyValues.= $date ? $date->getUid() : 0; + $key = 'pricetable_'.sha1($keyValues); + if (false === $priceTableData = $this->cache->get($key)) { $priceTableData = $this->productRepository->getPricetable($product, $hotel, $filterSettings, $date); $this->cache->set($key, $priceTableData, ['ep_products'], self::CACHE_TTL); @@ -147,10 +150,13 @@ class DateService implements SingletonInterface { $resolver->setRequired(['product', 'hotel']); $resolver->setDefined(['filterSettings', 'date', 'paCode']); - $resolver->setDefault('template', 'base'); + $resolver->setDefaults([ + 'template' => 'base', + 'date' => null, + ]); $resolver->setAllowedTypes('product', Product::class); $resolver->setAllowedTypes('hotel', Hotel::class); - $resolver->setAllowedTypes('date', Date::class); + $resolver->setAllowedTypes('date', [Date::class, 'null']); } public function getDatesTable(array $options): array