Description

Having a child blueprint that contains a custom event with the same name as a custom even that it is calling from its parent causes the editor to crash when attempting to compile the original parent blueprint.

Found in 4.11 Preview 5. Reproduced in Main CL 2858567.

Could not reproduce in 4.10.2. This is a regression.

Source Context

 116       // // before this class
  117       // if (Component->GetClass()->HasAnyClassFlags(CLASS_CompiledFromBlueprint))
  118       // {
  119       // DependenciesOut.Add(Component);
  120       // }
  121       // }
  122       }
  123       
  124       #if WITH_EDITOR
  125       
  126       UClass* UBlueprintGeneratedClass::GetAuthoritativeClass()
  127       {
  128       if (nullptr == ClassGeneratedBy) // to track UE-11597 and UE-11595
  129       {
  130 ***** UE_LOG(LogBlueprint, Fatal, TEXT("UBlueprintGeneratedClass::GetAuthoritativeClass: ClassGeneratedBy is null. class '%s'"), *GetPathName());
  131       }
  132       
  133       UBlueprint* GeneratingBP = CastChecked<UBlueprint>(ClassGeneratedBy);
  134       
  135       check(GeneratingBP);
  136       
  137       return (GeneratingBP->GeneratedClass != NULL) ? GeneratingBP->GeneratedClass : this;
  138       }
  139       
  140       struct FConditionalRecompileClassHepler
  141       {
  142       enum ENeededAction
  143       {
  144       None,
  145       StaticLink,
Steps to Reproduce

1. Open the editor
2. Create a new actor blueprint (BP_Actor)
3. Add a custom event to BP_Actor called TestEvent
4. Compile BP_Actor
5. Create a Child Blueprint Derived from BP_Actor
6. In the child bp, call Test Event from BP_Actor
7. Create a new custom event in the child blueprint called TestEvent
8. Compile BP_Actor
9. Compile BP_Actor_Child
10. Compile BP_Actor

Result: Editor crashes

Expected: No crash would occur

Callstack

Fatal error: [Link Removed] [Line: 131] UBlueprintGeneratedClass::GetAuthoritativeClass: ClassGeneratedBy is null. class '/Engine/Transient.TRASHCLASS_BP_Actor_40'

UE4Editor_Engine!UBlueprintGeneratedClass::GetAuthoritativeClass() blueprintgeneratedclass.cpp:131 
UE4Editor_UnrealEd!FBlueprintEditorUtils::RefreshExternalBlueprintDependencyNodes() blueprinteditorutils.cpp:572 
UE4Editor_KismetCompiler!FKismetCompilerContext::Compile() kismetcompiler.cpp:3520 
UE4Editor_KismetCompiler!FKismet2CompilerModule::CompileBlueprintInner() kismetcompilermodule.cpp:100 
UE4Editor_KismetCompiler!FKismet2CompilerModule::CompileBlueprint() kismetcompilermodule.cpp:192 
UE4Editor_UnrealEd!FKismetEditorUtilities::CompileBlueprint() kismet2.cpp:755 
UE4Editor_Kismet!FBlueprintEditor::Compile() blueprinteditor.cpp:3147 
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,TTypeWrapper<void> __cdecl() delegateinstancesimpl_variadics.inl:321 
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,void __cdecl() delegateinstancesimpl_variadics.inl:427 
UE4Editor_Slate!FUICommandList::ExecuteAction() uicommandlist.cpp:87 
UE4Editor_Slate!SToolBarButtonBlock::OnClicked() stoolbarbuttonblock.cpp:300 
UE4Editor_Slate!TMemberFunctionCaller<SToolBarButtonBlock,FReply() delegateinstanceinterface_variadics.h:161 
UE4Editor_Slate!TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter_ExplicitReturnType<FReply,TMemberFunctionCaller<SToolBarButtonBlock,FReply() tuple.h:128 
UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SToolBarButtonBlock,0,FReply __cdecl() delegateinstancesimpl_variadics.inl:321 
UE4Editor_Slate!TBaseDelegate<FReply>::Execute() delegatesignatureimpl_variadics.inl:521 
UE4Editor_Slate!SButton::OnMouseButtonUp() sbutton.cpp:273 
UE4Editor_Slate!<lambda_9ed539f2a96fd1ccd6d2214174cc7705>::operator() slateapplication.cpp:4508 
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_9ed539f2a96fd1ccd6d2214174cc7705> >() slateapplication.cpp:214 
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() slateapplication.cpp:4498 
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() slateapplication.cpp:4915 
UE4Editor_Slate!FSlateApplication::OnMouseUp() slateapplication.cpp:4891 
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() windowsapplication.cpp:1407 
UE4Editor_Core!FWindowsApplication::DeferMessage() windowsapplication.cpp:1712 
UE4Editor_Core!FWindowsApplication::ProcessMessage() windowsapplication.cpp:696 
UE4Editor_Core!FWindowsApplication::AppWndProc() windowsapplication.cpp:618 
user32!<Unknown> 
user32!<Unknown> 
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() windowsplatformmisc.cpp:884 
UE4Editor!FEngineLoop::Tick() launchengineloop.cpp:2604 
UE4Editor!GuardedMain() launch.cpp:142 
UE4Editor!GuardedMainWrapper() launchwindows.cpp:126 
UE4Editor!WinMain() launchwindows.cpp:200 
UE4Editor!__scrt_common_main_seh() exe_common.inl:264 
kernel32!<Unknown> 
ntdll!<Unknown> 

Have Comments or More Details?

Head over to the existing Questions & Answers thread and let us know what's up.

0
Login to Vote

Fixed
ComponentUE - Gameplay - Blueprint
Affects Versions4.114.12
Target Fix4.12.1
Fix Commit2999763
Release Commit2999778
CreatedFeb 10, 2016
ResolvedJun 3, 2016
UpdatedApr 27, 2018