Project

General

Profile

Bug #98992 ยป stackdump_type_error.txt

Sybille Peters, 2022-11-03 16:48

 
TypeError
Return value of TYPO3\CMS\Form\Hooks\DataStructureIdentifierHook::getLanguageService() must be an instance of TYPO3\CMS\Core\Localization\LanguageService, null returned

in /var/www/site-uol11/htdocs/typo3/sysext/form/Classes/Hooks/DataStructureIdentifierHook.php line 403
* @return LanguageService
*/
protected function getLanguageService(): LanguageService
{
return $GLOBALS['LANG'];
}
}
at TYPO3\CMS\Form\Hooks\DataStructureIdentifierHook->getLanguageService()
in /var/www/site-uol11/htdocs/typo3/sysext/form/Classes/Hooks/DataStructureIdentifierHook.php line 54
const L10N_PREFIX = 'LLL:EXT:form/Resources/Private/Language/Database.xlf:';

public function __construct()
{
$this->getLanguageService()->includeLLFile('EXT:form/Resources/Private/Language/Database.xlf');
}

/**
* The data structure depends on a current form selection (persistenceIdentifier)
at TYPO3\CMS\Form\Hooks\DataStructureIdentifierHook->__construct()
in /var/www/site-uol11/htdocs/typo3/sysext/core/Classes/Utility/GeneralUtility.php line 3220
return self::$container->get($className);
}

// Create new instance and call constructor with parameters
$instance = new $finalClassName(...$constructorArguments);
// Register new singleton instance, but only if it is not a known PSR-11 container service
if ($instance instanceof SingletonInterface && !(self::$container !== null && self::$container->has($className))) {
self::$singletonInstances[$finalClassName] = $instance;
}
at TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance()
in /var/www/site-uol11/htdocs/typo3/sysext/core/Classes/Configuration/FlexForm/FlexFormTools.php line 138
if (!empty($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][self::class]['flexParsing'])
&& is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][self::class]['flexParsing'])) {
$hookClasses = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][self::class]['flexParsing'];
foreach ($hookClasses as $hookClass) {
$hookInstance = GeneralUtility::makeInstance($hookClass);
if (method_exists($hookClass, 'getDataStructureIdentifierPreProcess')) {
$dataStructureIdentifier = $hookInstance->getDataStructureIdentifierPreProcess(
$fieldTca,
$tableName,
at TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools->getDataStructureIdentifier()
in /var/www/site-uol11/htdocs/typo3/sysext/core/Classes/Configuration/FlexForm/FlexFormTools.php line 785
// ok in certain scenarios, for instance on new record rows. Those are ok to "eat" here
// and substitute with a dummy DS.
$dataStructureArray = ['sheets' => ['sDEF' => []]];
try {
$dataStructureIdentifier = $this->getDataStructureIdentifier($GLOBALS['TCA'][$table]['columns'][$field], $table, $field, $row);
$dataStructureArray = $this->parseDataStructureByIdentifier($dataStructureIdentifier);
} catch (InvalidParentRowException|InvalidParentRowLoopException|InvalidParentRowRootException|InvalidPointerFieldValueException|InvalidIdentifierException $e) {
}

at TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools->traverseFlexFormXMLData()
in /var/www/site-uol11/htdocs/typo3/sysext/core/Classes/Configuration/FlexForm/FlexFormTools.php line 913
$this->cleanFlexFormXML = [];
// Create and call iterator object:
$flexObj = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools::class);
$flexObj->reNumberIndexesOfSectionData = true;
$flexObj->traverseFlexFormXMLData($table, $field, $row, $this, 'cleanFlexFormXML_callBackFunction');
return $this->flexArray2Xml($this->cleanFlexFormXML, true);
}

/**
at TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools->cleanFlexFormXML()
in /var/www/site-uol11/htdocs/typo3conf/ext/studipol/Classes/Upgrade/FlexFormPersonOptimizationV3UpgradeWizard.php line 150
* explicitly want to clean up the FlexForm
*/

// cleanup FlexForm
$xml = $this->flexformTools->cleanFlexFormXML('tt_content', 'pi_flexform', $row);
$xmlArray = $this->flexformTools->cleanFlexFormXML;

// result has a different format !!!
// $xmlArray = $this->flexformService->convertFlexFormContentToArray($row['pi_flexform']);
at Uniol\Studipol\Upgrade\FlexFormPersonOptimizationV3UpgradeWizard->executeUpdate()
in /var/www/site-uol11/htdocs/typo3/sysext/install/Classes/Service/UpgradeWizardsService.php line 400
$performResult = true;
}
} else {
// confirmation yes or non-confirmable
$performResult = $updateObject->executeUpdate();
    (1-1/1)