2.1. General Compatibility 7.6.0
This section describes compatibility issues that affect an upgrade to 7.6.0. It describes general, wire, and other compatibility issues between Connext 7.6.0 and previous releases.
Unless noted otherwise, the issues in this section do not apply to RTI Connext Micro.
See RTI Connext Performance Benchmarks for performance details in this release.
2.1.1. Wire Compatibility
2.1.1.1. Configure compatibility with Java keyhash calculation in previous releases
In previous releases, the Java keyhash calculation of mutable types in XCDR (Extensible CDR version 1) was not compliant with the OMG ‘Extensible and Dynamic Topic Types for DDS’ specification, version 1.3, when either 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.
Starting in release 7.6.0, the keyhash calculation for Java has been corrected under these conditions. This change ensures that Java now generates the same keyhash as the other language bindings. This fix causes the Java API in 7.6.0 to generate a different keyhash than the Java API in 7.5.0 and earlier releases under the above conditions.
If you need to maintain compatibility with keyhashes generated by Java 7.5.0
and earlier, you can restore the previous behavior by modifying the Extensible
Types compliance mask, by setting the java_keyhash_750() bit (0x00000200),
to enable the legacy keyhash calculation (and not be compatible with the
specification). By default, the bit is not set (and is compatible with the
specification).
For example, to restore the previous behavior, you could set the mask in Java like this:
import com.rti.ndds.config.Compliance;
import com.rti.ndds.config.Compliance.XTypesMask;
XTypesMask xTypesComplianceMask = Compliance.get_xtypes_mask();
xTypesComplianceMask.set_bit(XTypesMask.JAVA_KEYHASH_750_BIT);
Compliance.set_xtypes_mask(xTypesComplianceMask);
See Extensible Types Compliance Mask in the RTI Connext Core Libraries Extensible Types Guide for more information.