mirror of
https://github.com/corda/corda.git
synced 2025-04-07 19:34:41 +00:00
This is a multi issue problem 1. Fingerprinting of generics treats <T> and <?> differently, forcing the evolver to be used when not needed 2. However, the evolver is required sometimes as generics are not guaranteed to fingerprinting bi-directionally (thanks to type erasure of deeply nested generic types). However, with serialization now writing properties in a specific order, we need to ensure they're read back in that order before applying them to an evolved constructor so as to not corrupt the object reference cache