5.2.13. APIs (Java)
5.2.13.1. [Critical] Java keyhash calculation error with mutable types in XCDR
A keyhash calculation error occurred in the Java implementation for mutable types using XCDR encoding, when one of the following conditions was met:
The type’s maximum serialized size exceeded 65 KB and the key was not primitive.
At least one key member had a member ID greater than 16128.
Under these conditions, the keyhash was incorrectly computed, leading to interoperability issues between Java and other language implementations. Specifically, identical data instances produced by different writers were incorrectly treated as distinct, resulting in erroneous instance identification.
This fix ensures that Java now generates the same keyhash as the other language bindings, meaning that Java in 7.6.0 generates a different keyhash than it did in previous releases under the above conditions. If you want to preserve the previous behavior, see the Migration Guide for instructions on updating the Extensible Types compliance mask.
[RTI Issue ID CORE-15710]