From fb32aa2856ad75c36c5970be46b8cfdcd8e01970 Mon Sep 17 00:00:00 2001
From: Oliver Bartsch <bo@cedev.de>
Date: Tue, 16 Nov 2021 13:12:10 +0100
Subject: [PATCH] [BUGFIX] Fix undefined array key warnings in field providers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Resolves: #95995
Releases: master
Change-Id: I6faea581aba0ca9171a6b79c94c1371c56b60387
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72192
Tested-by: Nikita Hovratov <nikita.h@live.de>
Tested-by: Stefan Bürk <stefan@buerk.tech>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Nikita Hovratov <nikita.h@live.de>
Reviewed-by: Stefan Bürk <stefan@buerk.tech>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
---
 typo3/sysext/recycler/Classes/Task/CleanerFieldProvider.php | 2 +-
 .../Task/OptimizeDatabaseTableAdditionalFieldProvider.php   | 2 +-
 .../Task/TableGarbageCollectionAdditionalFieldProvider.php  | 6 +++---
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/typo3/sysext/recycler/Classes/Task/CleanerFieldProvider.php b/typo3/sysext/recycler/Classes/Task/CleanerFieldProvider.php
index 2e8763c2cc2f..c9fa2e8055d1 100644
--- a/typo3/sysext/recycler/Classes/Task/CleanerFieldProvider.php
+++ b/typo3/sysext/recycler/Classes/Task/CleanerFieldProvider.php
@@ -102,7 +102,7 @@ class CleanerFieldProvider extends AbstractAdditionalFieldProvider
     public function validateAdditionalFields(array &$submittedData, SchedulerModuleController $schedulerModule)
     {
         $validPeriod = $this->validateAdditionalFieldPeriod($submittedData['RecyclerCleanerPeriod']);
-        $validTca = $this->validateAdditionalFieldTca($submittedData['RecyclerCleanerTCA']);
+        $validTca = $this->validateAdditionalFieldTca($submittedData['RecyclerCleanerTCA'] ?? []);
 
         return $validPeriod && $validTca;
     }
diff --git a/typo3/sysext/scheduler/Classes/Task/OptimizeDatabaseTableAdditionalFieldProvider.php b/typo3/sysext/scheduler/Classes/Task/OptimizeDatabaseTableAdditionalFieldProvider.php
index 33084750f294..ecf3cb24b457 100644
--- a/typo3/sysext/scheduler/Classes/Task/OptimizeDatabaseTableAdditionalFieldProvider.php
+++ b/typo3/sysext/scheduler/Classes/Task/OptimizeDatabaseTableAdditionalFieldProvider.php
@@ -88,7 +88,7 @@ class OptimizeDatabaseTableAdditionalFieldProvider extends AbstractAdditionalFie
     {
         $validData = true;
         $availableTables = $this->getOptimizableTables();
-        if (is_array($submittedData['scheduler_optimizeDatabaseTables_selectedTables'])) {
+        if (is_array($submittedData['scheduler_optimizeDatabaseTables_selectedTables'] ?? false)) {
             $invalidTables = array_diff(
                 $submittedData['scheduler_optimizeDatabaseTables_selectedTables'],
                 $availableTables
diff --git a/typo3/sysext/scheduler/Classes/Task/TableGarbageCollectionAdditionalFieldProvider.php b/typo3/sysext/scheduler/Classes/Task/TableGarbageCollectionAdditionalFieldProvider.php
index 69c945bc91f4..0b6feecf5e4a 100644
--- a/typo3/sysext/scheduler/Classes/Task/TableGarbageCollectionAdditionalFieldProvider.php
+++ b/typo3/sysext/scheduler/Classes/Task/TableGarbageCollectionAdditionalFieldProvider.php
@@ -266,9 +266,9 @@ class TableGarbageCollectionAdditionalFieldProvider extends AbstractAdditionalFi
      */
     public function saveAdditionalFields(array $submittedData, AbstractTask $task)
     {
-        $task->allTables = $submittedData['scheduler_tableGarbageCollection_allTables'] === 'on';
-        $task->table = $submittedData['scheduler_tableGarbageCollection_table'];
-        $task->numberOfDays = (int)$submittedData['scheduler_tableGarbageCollection_numberOfDays'];
+        $task->allTables = ($submittedData['scheduler_tableGarbageCollection_allTables'] ?? '') === 'on';
+        $task->table = $submittedData['scheduler_tableGarbageCollection_table'] ?? '';
+        $task->numberOfDays = (int)($submittedData['scheduler_tableGarbageCollection_numberOfDays'] ?? 0);
     }
 
     /**
-- 
GitLab