Revisit expression visitor around null keys

Matthew Clark 12 years ago updated by anonymous 9 years ago 4

There is currently a workaround in place for IDB-731 due to the expression visitor handling when GetMultiKeyValue is called on fields that are not populated. This needs to be eventually updated so that it doesn't throw a null reference exception in this case.

A null reference exception can also be produced by calling doing an "entity.GetMultiKeyValue(key) != null" check. This can be reproduced by readding this check to EntityCompositeKeyDistinguishedNameStaticRelationValueAdapterBase.Transform and reattempting the scenario described in IDB-731.

Matthew, I cannot reproduce the first part. I haven't resolved the issue, as you may be able to in a unit test.

The second part doesn't make sense to me as GetMultiKeyValue cannot return null. So this test doesn't need to be performed. If there is a null instead of a MultiKeyValue being returned by a method somewhere, please let me know so that I can fix that one up.

Obviously this is not urgent.


Remove the check in that method and retry IDB-731 to see this behaviour occurring - unsure of whether or not its currently recreated with a unit test.

Fixed usage to remove need for workaround, moved to v4.2.0 if time is available for visitor to check contains, as although this isn't needed for keys, it may be useful in the future when it comes to null values.

How-To fix this:

With the limited amount of time spent on working out this issue I could not see an obvious way to do this. This may require significant development effort to complete.