5.2.22. OMG Specification Compliance

5.2.22.1. [Major] Incorrect value of an infinite duration in non-Java APIs

In all language APIs other than Java, the value of an infinite duration (e.g., dds::core::Duration::infinite() in Modern C++) was not compliant with the OMG DDS Specification. The incorrect value was sec = 0x7fffffff, nanosec = 0xffffffff. The correct value is sec = 0x7fffffff, nanosec = 0x7fffffff. This problem only affected releases 7.2.0 and above.

[RTI Issue ID CORE-15545]

5.2.22.2. [Minor] Consistency between max_samples_per_instance and max_samples was not enforced for unkeyed topics

The API Reference for max_samples_per_instance, which is a field that is included in the DDS Specification, states:

While an unkeyed type is logically considered as a single instance, for unkeyed types this value has to be equal to max_samples or DDS_LENGTH_UNLIMITED.

This consistency was not enforced. For an unkeyed type, if max_samples_per_instance was less than max_samples, then entity creation would incorrectly succeed. Now, it fails with an error message prompting you to change the values to be equal.

[RTI Issue ID CORE-5643]