From 2f312e2c8a69e817a45ac1250e76534041a2a7b7 Mon Sep 17 00:00:00 2001
From: Volker Diels-Grabsch <volker.diels-grabsch@m-click.aero>
Date: Thu, 9 Apr 2020 19:27:16 +0200
Subject: [PATCH] [BUGFIX] Do not perform string-with-boolean comparisons in
 switch cases

This commit fixes a string-with-boolean comparison in a switch case.
Instead, this complex case is moved down to the default case where all
other complex cases are handled as well.

Resolves: #90992
Related: #89857
Related: #72053
Releases: master, 9.5
Change-Id: I43730176e1a46a2bc63ea4d45bcf4511c1970aab
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/64113
Tested-by: Jonas Eberle <flightvision@googlemail.com>
Tested-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: TYPO3com <noreply@typo3.com>
Reviewed-by: Jonas Eberle <flightvision@googlemail.com>
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
---
 .../Classes/Persistence/Generic/Mapper/DataMapper.php      | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/typo3/sysext/extbase/Classes/Persistence/Generic/Mapper/DataMapper.php b/typo3/sysext/extbase/Classes/Persistence/Generic/Mapper/DataMapper.php
index 79968dfb7f7a..ed281be696ab 100644
--- a/typo3/sysext/extbase/Classes/Persistence/Generic/Mapper/DataMapper.php
+++ b/typo3/sysext/extbase/Classes/Persistence/Generic/Mapper/DataMapper.php
@@ -283,15 +283,14 @@ class DataMapper
                             $this->fetchRelated($object, $propertyName, $row[$columnName])
                         );
                         break;
-                    case is_subclass_of($propertyType, \DateTimeInterface::class):
+                    default:
+                        if (is_subclass_of($propertyType, \DateTimeInterface::class)) {
                             $propertyValue = $this->mapDateTime(
                                 $row[$columnName],
                                 $columnMap->getDateTimeStorageFormat(),
                                 $propertyType
                             );
-                        break;
-                    default:
-                        if (TypeHandlingUtility::isCoreType($propertyType)) {
+                        } elseif (TypeHandlingUtility::isCoreType($propertyType)) {
                             $propertyValue = $this->mapCoreType($propertyType, $row[$columnName]);
                         } else {
                             $propertyValue = $this->mapObjectToClassProperty(
-- 
GitLab