Description

The Editor crashes when a data table references itself by using the data table row handle setting in a struct

Steps to Reproduce
  1. Open the editor
  2. Create a New Struct Blueprint
  3. Create a two new members
  4. Set them to be Data Table Row Handle
  5. Save
  6. Create a new Data table
  7. Name it "CrashTable"
  8. Open crash Table
  9. Base it on the Struct that was made before
  10. Add a new row
  11. Set the data table to reference itself
  12. Set the row to the new member of the struct
  13. Save all
  14. Notice that the editor crashes

Expected: The editor would provide a warning or an error
Result: The editor crashes

Callstack

MachineId:EA8CDCD54E3691A62F8838A5364B34C6
EpicAccountId:6003a092eb5e4d259eb50cf2c6e341d2

Stack overflow - code c00000fd (first/second chance not available)

UE4Editor_CoreUObject!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObject() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\coreuobject\private\serialization\propertylocalizationdatagathering.cpp:59]
UE4Editor_Engine!`anonymous namespace'::GatherDataTableForLocalization() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\engine\private\datatable.cpp:18]
UE4Editor_CoreUObject!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObjectWithCallbacks() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\coreuobject\private\serialization\propertylocalizationdatagathering.cpp:51]
UE4Editor_CoreUObject!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromChildTextProperties() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\coreuobject\private\serialization\propertylocalizationdatagathering.cpp:224]
UE4Editor_CoreUObject!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromStructFields() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\coreuobject\private\serialization\propertylocalizationdatagathering.cpp:145]
UE4Editor_CoreUObject!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromChildTextProperties() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\coreuobject\private\serialization\propertylocalizationdatagathering.cpp:216]
UE4Editor_Engine!`anonymous namespace'::GatherDataTableForLocalization() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\engine\private\datatable.cpp:22]
UE4Editor_CoreUObject!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObjectWithCallbacks() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\coreuobject\private\serialization\propertylocalizationdatagathering.cpp:51]
UE4Editor_CoreUObject!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromChildTextProperties() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\coreuobject\private\serialization\propertylocalizationdatagathering.cpp:224]
UE4Editor_CoreUObject!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromStructFields() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\coreuobject\private\serialization\propertylocalizationdatagathering.cpp:145]
UE4Editor_CoreUObject!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromChildTextProperties() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\coreuobject\private\serialization\propertylocalizationdatagathering.cpp:216]
UE4Editor_Engine!`anonymous namespace'::GatherDataTableForLocalization() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\engine\private\datatable.cpp:22]
UE4Editor_CoreUObject!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObjectWithCallbacks() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\coreuobject\private\serialization\propertylocalizationdatagathering.cpp:51]
UE4Editor_CoreUObject!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromChildTextProperties() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\coreuobject\private\serialization\propertylocalizationdatagathering.cpp:224]
UE4Editor_CoreUObject!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromStructFields() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\coreuobject\private\serialization\propertylocalizationdatagathering.cpp:145]
UE4Editor_CoreUObject!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromChildTextProperties() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\coreuobject\private\serialization\propertylocalizationdatagathering.cpp:216]
UE4Editor_Engine!`anonymous namespace'::GatherDataTableForLocalization() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\engine\private\datatable.cpp:22]
UE4Editor_CoreUObject!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObjectWithCallbacks() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\coreuobject\private\serialization\propertylocalizationdatagathering.cpp:51]
UE4Editor_CoreUObject!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromChildTextProperties() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\coreuobject\private\serialization\propertylocalizationdatagathering.cpp:224]
UE4Editor_CoreUObject!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromStructFields() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\coreuobject\private\serialization\propertylocalizationdatagathering.cpp:145]
UE4Editor_CoreUObject!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromChildTextProperties() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\coreuobject\private\serialization\propertylocalizationdatagathering.cpp:216]
UE4Editor_Engine!`anonymous namespace'::GatherDataTableForLocalization() [d:\build\++ue4+release-4.12+compile\sync\engine\source\runtime\engine\private\datatable.cpp:22]

Have Comments or More Details?

Head over to the existingAnswerHub thread and let us know what's up.

0
Login to Vote

Fixed
ComponentTools - Localization
Affects Versions4.12.4
Target Fix4.13
Fix Commit3037605
Main Commit3050870
CreatedJun 30, 2016
ResolvedJul 5, 2016
UpdatedMay 2, 2018