Hi,
So the problem occurs if you have multiple values stored in an * IPropertyHandle *.
Once you call Handle->GetPerObjectValues( OutObjects ) the function will fetch the read addresses by calling
PropertyNode->GetReadAddress( !!PropertyNode->HasNodeFlags(EPropertyNodeFlags::SingleSelectOnly), ReadAddresses, false );
At this moment since the bObjectForceCompare is false it will just compare the null and not-null values and store them in the CachedReadAddresses with the bAllValuesTheSame == true. (unless there is a null of course, but that’s not the case).
Now whenever you call the Handle->GetValue( Object ) instead of comparing the values it will just read the cache and set the Object to the first value read and return FPropertyAccess::Success instead of FPropertyAccess::MultipleValues
Note that if you do it other way round and fist call GetValue then GetPerObjectValues everything works fine.
Hopefully this gets fixed soon :). Thanks in advance.