Issues with components after upgrading to 4.6.1

We have a few cases where we’re using custom components in our code, and we’re finding there seem to be some odd issues after upgrading to Unreal 4.6.1.

For example, there’s a storage depot building which has a StorageComponent, which is a UCLASS derived from UActorComponent, like it should be. We initialize the StorageComponent in the constructor like so, which is the way this sort of thing is done throughout the engine itself:

AOCBuildingStorageDepot::AOCBuildingStorageDepot(const class FObjectInitializer& ObjectInitializer)
	: Super(ObjectInitializer)
	StorageComponent = ObjectInitializer.CreateDefaultSubobject<UBuildingStorageComponent>( this, TEXT( "StorageComponent" ) );

and here’s how it’s declared in the storage depot’s header file:

UPROPERTY(Category=Storage, VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess="true"))
class UBuildingStorageComponent* StorageComponent;

We’re suddenly seeing that with 4.6.1, the StorageComponent pointer gets mysteriously nulled out somewhere in between the constructor and the storage depot’s BeginPlay().

What could be causing this?

Found a bit more info – see the attached. The moment you run the game, it constructs the StorageComponent object correctly, but then overwrites the value of that pointer almost immediately after getting out of the constructor, inside a call to FObjectInitializer::InitProperties().

OK, I think we figured this out on our end … something in the engine upgrade caused the map data to be corrupted for these actors, so we had to delete them from our level and then re-add them.

I have a similar issue, but recreating assets does not really help.
Forum link