.. include:: /../getting_started/vars.rst .. _section-General-760: 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. Wire Compatibility ================== 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: .. code-block:: Java 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. .. DOC-847 and CORE-15710