5.4. What’s Fixed in 4.4.0

This section describes bugs fixed in Code Generator 4.4.0 (Connext 7.4.0). These are fixes since Code Generator 4.3.0 (Connext 7.3.0).

Connext 7.4.0 is an early access release. See the Connext Versions and Lifecycle page for more information on RTI’s software release model.

[Critical]: System-stopping issue, such as a crash or data loss.
[Major]: Significant issue with no easy workaround.
[Minor]: Issue that usually has a workaround.
[Trivial]: Small issue, such as a typo in a log.

5.4.1. Generated Code (Python)

5.4.1.1. [Major] @autoid(hash) annotation in Python API ignored when added to types and modules

When a type or module was annotated with @autoid, the generated Python code ignored it and the member IDs were not calculated based on a hash. Now, any children of a module/aggregated type annotated with @autoid will use the correct ID.

[RTI Issue ID CODEGENII-2101]

5.4.2. Generated Code (Multiple Languages)

5.4.2.1. [Major] Failure to find included files when they were relative to a file, when using -generateIncludeFiles

Code Generator failed to generate included files when using the flag -generateIncludeFiles, when the included files were specified with a path relative to the actual file.

[RTI Issue ID CODEGENII-2078]

5.4.2.2. [Minor] Code Generator server failed to generate code for IDL with forward declaration if you generated code for Python afterwards

If you generated code with Code Generator server for an IDL that had a forward declaration for any language but Python, and then you generated code for a simple IDL without forward declarations, for Python, you saw the following error, even though the IDL for Python didn’t have a forward declaration:

ERROR com.rti.ndds.nddsgen.emitters.PythonEmitter Error when generating code. Python code generation does not support forward declarations
ERROR com.rti.ndds.nddsgen.Main Error generating Source Files

[RTI Issue ID CODEGENII-2072]

5.4.2.3. [Minor] Code Generator server failed to process a file with “include” multiple times

If you ran Code Generator server with a file that had one or more “include” directives, then ran it again with that file, you saw the following error:

ERROR com.rti.ndds.nddsgen.IDLPreprocessor folder/file.idl:1:10: fatal error: file.idl: No such file or directory
    1 | #include "file.idl"
      |          ^~~~~~~~~~~
compilation terminated.

ERROR com.rti.ndds.nddsgen.Main Fail:  java.lang.Exception: Error executing cpp preprocessor. Finished with exit value: 1

[RTI Issue ID CODEGENII-2070]

5.4.2.4. [Minor] Code Generator server incorrectly propagated value of -allowedDataRepresentation flag through the different executions

When you used -allowedDataRepresentation in a Code Generator server call, that flag was propagated to the different calls, so that if you generated code for this IDL,

@allowed_data_representation(XCDR2)
struct myStruct2 {
    long m1;
};

having specified -allowedDataRepresentation xcdr1 in a previous call, you saw the following error, which was not correct:

ERROR com.rti.ndds.nddsgen.Main Fail:  java.lang.RuntimeException: The data representation mask of myStruct2 does not match with the value of the flag -allowedDataRepresentation

[RTI Issue ID CODEGENII-2068]

5.4.2.5. [Minor] Code Generator server failed when processing IDL with common enumerator using -qualifiedEnumerator, then disabling that flag

When you ran Code Generator server with the flag -qualifiedEnumerator , for the following IDL:

enum ColorA {
    GREEN,
    BLUE
};
enum ColorB {
    GREEN,
    RED
};

And then you generated code for a simple IDL (without using the -qualifiedEnumerator flag), you saw the following error, which was incorrect:

ERROR com.rti.ndds.nddsgen.emitters.CSourceEmitter Error when generating code for node
ERROR com.rti.ndds.nddsgen.emitters.CSourceEmitter There are multiple enums with a common enumerator, to generate code for C or C++98 you must use the -qualifiedEnumerator flag.
ERROR com.rti.ndds.nddsgen.Main Error generating Source Files

[RTI Issue ID CODEGENII-2067]

5.4.2.6. [Trivial] Code Generator server accumulated specific logging over different calls

Some of the logging of Code Generator server was accumulated over the different calls of Code Generator server, displaying the logging multiple times.

[RTI Issue ID CODEGENII-2071]

5.4.3. Hangs

5.4.3.1. [Major] rtiddsgen_server failed on macOS systems

When you ran rtiddsgen_server on a macOS system, the following error may have occurred:

RTIDDSGEN_read: Timeout, no data to be read on socket 14662
RTIDDSGEN_checkServerConnection: Please check there is no other application listening on port 14662 CMD-16 returned 255

[RTI Issue ID CODEGENII-2060]

5.4.4. Other

5.4.4.1. [Minor] Code Generator failed to import file with capitalized file extension

Code Generator failed to import an input file, regardless of the type (IDL, .XML, or .XSD), with a capitalized file extension.

[RTI Issue ID CODEGENII-2104]

5.4.4.2. [Minor] Inconsistent IDL code generation for C and C++98

The detection of enumerator collisions for C and C++98 failed to properly detect collisions with other enumerators in different modules or with other elements with the same name. This issue could cause incorrect Code Generator errors, or generated code that would not compile. These errors did not occur for other languages like C++11, C#, Java, and Python.

The code generation process now correctly checks for enumerator collisions, ensuring consistent behavior across all supported languages. For C and C++98, code generation correctly fails and provides a message indicating the need to use the -qualifiedEnumerator option when two enumerators collide.

[RTI Issue ID CODEGENII-2133]

5.4.4.3. [Trivial] README file generated for Ada showed incorrect path for the makefile

The README generated for Ada examples (when using -language ada) was not accurate. It stated an incorrect path for building. The generated README for Ada now gives the correct path for building.

[RTI Issue ID CODEGENII-2105]