Actions
Bug #79746
closedCopying a record with translation and IRRE relation fails
Start date:
2017-02-10
Due date:
% Done:
100%
Estimated time:
TYPO3 Version:
8
PHP Version:
7.0
Tags:
Complexity:
Is Regression:
No
Sprint Focus:
Stabilization Sprint
Description
Scenario:
- We have a page
- That page has some (non-FAL) IRRE relations
- That page has a translation
- Update to master
- Copy and paste via page tree
- Exception:
Argument 1 passed to TYPO3\CMS\Core\Database\Query\Expression\ExpressionBuilder::in() must be of the type string, null given, called in /my-superb-website/vendor/typo3/cms/typo3/sysext/core/Classes/DataHandling/Localization/DataMapProcessor.php on line 663 TypeError thrown in file /my-superb-website/vendor/typo3/cms/typo3/sysext/core/Classes/Database/Query/Expression/ExpressionBuilder.php in line 243. 23 TYPO3\CMS\Core\Database\Query\Expression\ExpressionBuilder::in(NULL, ":dcValue1") /my-superb-website/vendor/typo3/cms/typo3/sysext/core/Classes/DataHandling/Localization/DataMapProcessor.php: 00661: $queryBuilder->expr()->in( 00662: $fieldNames['parent'], 00663: $queryBuilder->createNamedParameter($ids, Connection::PARAM_INT_ARRAY) 00664: ) 00665: ]; 22 TYPO3\CMS\Core\DataHandling\Localization\DataMapProcessor::fetchDependentElements("tx_my_irre_relation_table", array, array) /my-superb-website/vendor/typo3/cms/typo3/sysext/core/Classes/DataHandling/Localization/DataMapProcessor.php: 00624: } 00625: 00626: $dependentElements = $this->fetchDependentElements($tableName, $ids, $fieldNames); 00627: 00628: $dependentIdMap = []; 21 TYPO3\CMS\Core\DataHandling\Localization\DataMapProcessor::fetchDependentIdMap("tx_my_irre_relation_table", array) /my-superb-website/vendor/typo3/cms/typo3/sysext/core/Classes/DataHandling/Localization/DataMapProcessor.php: 00433: // The dependent ID map points from language parent/source record to 00434: // localization, thus keys: parents/sources & values: localizations 00435: $dependentIdMap = $this->fetchDependentIdMap($foreignTableName, $suggestedAncestorIds); 00436: // filter incomplete structures - this is a drawback of DataHandler's remap stack, since 00437: // just created IRRE translations still belong to the language parent - filter them out 20 TYPO3\CMS\Core\DataHandling\Localization\DataMapProcessor::synchronizeInlineRelations(TYPO3\CMS\Core\DataHandling\Localization\DataMapItem, "my_irre_relation", array, array) /my-superb-website/vendor/typo3/cms/typo3/sysext/core/Classes/DataHandling/Localization/DataMapProcessor.php: 00323: // inline relational values 00324: } else { 00325: $this->synchronizeInlineRelations($item, $fieldName, $fromRecord, $forRecord); 00326: } 00327: } 19 TYPO3\CMS\Core\DataHandling\Localization\DataMapProcessor::synchronizeFieldValues(TYPO3\CMS\Core\DataHandling\Localization\DataMapItem, "my_irre_relation", array, array) /my-superb-website/vendor/typo3/cms/typo3/sysext/core/Classes/DataHandling/Localization/DataMapProcessor.php: 00235: } 00236: foreach ($fieldNames as $fieldName) { 00237: $this->synchronizeFieldValues( 00238: $item, 00239: $fieldName, 18 TYPO3\CMS\Core\DataHandling\Localization\DataMapProcessor::synchronizeTranslationItem(TYPO3\CMS\Core\DataHandling\Localization\DataMapItem, array, 345) /my-superb-website/vendor/typo3/cms/typo3/sysext/core/Classes/DataHandling/Localization/DataMapProcessor.php: 00177: $fromId = $item->getIdForScope($scope); 00178: $fieldNames = $this->getFieldNamesForItemScope($item, $scope, !$item->isNew()); 00179: $this->synchronizeTranslationItem($item, $fieldNames, $fromId); 00180: } 00181: $this->populateTranslationItem($item); 17 TYPO3\CMS\Core\DataHandling\Localization\DataMapProcessor::enrich() /my-superb-website/vendor/typo3/cms/typo3/sysext/core/Classes/DataHandling/Localization/DataMapProcessor.php: 00094: } 00095: $this->sanitize(); 00096: $this->enrich(); 00097: return $this->dataMap; 00098: } 16 TYPO3\CMS\Core\DataHandling\Localization\DataMapProcessor::process() /my-superb-website/vendor/typo3/cms/typo3/sysext/core/Classes/DataHandling/DataHandler.php: 00982: } 00983: // Pre-process data-map and synchronize localization states 00984: $this->datamap = DataMapProcessor::instance($this->datamap, $this->BE_USER)->process(); 00985: // Organize tables so that the pages-table is always processed first. This is required if you want to make sure that content pointing to a new page will be created. 00986: $orderOfTables = []; 15 TYPO3\CMS\Core\DataHandling\DataHandler::process_datamap() /my-superb-website/vendor/typo3/cms/typo3/sysext/core/Classes/DataHandling/DataHandler.php: 03395: $copyTCE = $this->getLocalTCE(); 03396: $copyTCE->start($data, '', $this->BE_USER); 03397: $copyTCE->process_datamap(); 03398: // Getting the new UID: 03399: $theNewSQLID = $copyTCE->substNEWwithIDs[$theNewID]; 14 TYPO3\CMS\Core\DataHandling\DataHandler::copyRecord("pages_language_overlay", 4, "345", boolean, array)
Actions