5.2. What’s Fixed in 4.5.0
This section describes bugs fixed in Code Generator 4.5.0 (Connext 7.5.0). These are fixes since Code Generator 4.4.0, described in Previous Releases.
Connext 7.5.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.2.1. Generated Code (C, Traditional C++, and Modern C++)
5.2.1.1. [Major] RPC operation code generation may have been incorrect for IDL4 C++
Using the command-line option -standard IDL4_CPP may have generated code that did not compile. The problem occurred during code generation for any operation with a return value For example:
@service("DDS")
interface Hello
{
string get_string ();
};
Now the generated code for RPC compiles.
[RTI Issue ID CODEGENII-2160]
5.2.1.2. [Major] Code Generator failed if operation parameter contained @default annotation in C++11
When generating code for C++11, Code Generator failed with an error similar to the following, if the input file contained an operation parameter with an @default annotation:
INFO com.rti.ndds.nddsgen.Main Running rtiddsgen version 4.3.0, please wait ...
ERROR com.rti.ndds.nddsgen.Nddsgen test.idl line 4:24 The annotation '@default(12)' is not applicable for the context: operation parameter.
ERROR com.rti.ndds.nddsgen.Main Fail: java.util.concurrent.ExecutionException: java.lang.Exception: The file couldn't be parsed and the rawTree wasn't generated
INFO com.rti.ndds.nddsgen.Main Done (failures)
[RTI Issue ID CODEGENII-2176]
5.2.1.3. [Major] @default annotation for wstring members in C++11 was not applied
When generating code for C++11, the @default annotation for wstring members was not applied.
[RTI Issue ID CODEGENII-2159]
5.2.1.4. [Major] Code Generator generated code that contained some [-Wunused-parameter] warnings when generating code for an empty struct using the -standard IDL4_CPP option
Code Generator generated code that contained some
[-Wunused-parameter] warnings when generating code for an empty
struct using the -standard IDL4_CPP option. Now the generated code
doesn’t produce any warning.
[RTI Issue ID CODEGENII-2153]
5.2.1.5. [Major] Code Generator failed if a member inside an exception contained any annotation in C++11
When generating code for C++11, Code Generator failed with a similar error like the following, if the input file contained a member with an annotation inside an exception:
INFO com.rti.ndds.nddsgen.Main Running rtiddsgen version 4.3.0, please wait ...
ERROR com.rti.ndds.nddsgen.antlr.auto.IdlParser Foo.idl line 3:4 mismatched input '@default' expecting '}' in exception
ERROR com.rti.ndds.nddsgen.Main Fail: java.lang.Exception: The file couldn't be parsed and the rawTree wasn't generated
INFO com.rti.ndds.nddsgen.Main Done (failures)
[RTI Issue ID CODEGENII-2149]
5.2.1.6. [Major] Generated code for C++11 didn’t compile when using the -standard IDL4_CPP command-line option for unions
When generating code for C++11, if the input file contained a union with a default case, the code was generated incorrectly and failed to compile. Now the generated code is correct and does not fail to compile.
[RTI Issue ID CODEGENII-2148]
5.2.1.7. [Major] Generated code for overload (<<) operator did not compile in C++20 when a type had wstring or wchar
The standard 20 of C++ removed the implementation of the operator << for wchar and wstring. The generated code for types with wstring and wchar relied on the standard implementation of the operator << to print the type. After the removal, the generated code stop compiling. This issue only happened when the code was compiled with std=20 or higher.
[RTI Issue ID CODEGENII-2147]
5.2.2. Generated Code (Multiple Languages)
5.2.2.1. [Major] Code generation failed if @verbatim annotation encountered
Code Generator (rtiddsgen) is supposed to ignore the @verbatim annotation. However, a bug in Code Generator 4.2.0 (Connext 7.2.0) caused rtiddsgen to fail when it found @verbatim. Now the annotation is ignored.
[RTI Issue ID CODEGENII-2200]
5.2.2.2. [Major] Codegen failed to process IDL files when including another IDL in a path with spaces
When converting an input file (XML or XSD) to IDL, the generated IDL
file didn’t contain double quotes around file paths in #include
statements. This caused errors when the file path contained spaces. In
addition, Code Generator failed to process an IDL when including
another IDL in a path with spaces:
ERROR com.rti.ndds.nddsgen.IDLPreprocessor test.idl:1:10: fatal error: path: No such file or directory
1 | #include "path with spaces/include.idl"
| ^~~~~~
compilation terminated.
ERROR com.rti.ndds.nddsgen.Main Fail: java.util.concurrent.ExecutionException: java.lang.Exception: Error executing cpp preprocessor. Finished with exit value: 1
[RTI Issue ID CODEGENII-2179]
5.2.2.3. [Major] Array initialization was incorrect for enumerators with a default literal in Modern C++ and C#
The array initialization was incorrect for enumerators with a default literal in Modern C++ and C#. The array was being initialized with the first value independently of the default literal value. See an example of an affected type:
enum Color {
GREEN,
@default_literal RED,
BLUE
};
typedef Color ColorArray[5];
struct Shape {
Color color_red;
ColorArray color_red_array;
};
[RTI Issue ID CODEGENII-2157]
5.2.2.4. [Minor] Generated example makefile for arm64Darwin20 architectures did not include RTI_64BIT
The generated example Makefile for the arm64Darwin20 architecture did
not include the RTI_64BIT preprocessor definition. This omission may
have caused unreliable results when using heap monitoring.
[RTI Issue ID CODEGENII-2210]
5.2.2.5. [Minor] Incorrect file path for generated code with multiple IDL files
When generating code with multiple IDL files, the generated file paths included an unexpected user-specific directory. This issue occurred regardless of whether relative or absolute paths were used for the input files. The problem has been resolved, and now the generated file paths follow the expected structure.
[RTI Issue ID CODEGENII-2213]
5.2.3. Other
5.2.3.1. [Major] Code Generator may have failed to process XML files if the include was used in multiple files
Code Generator may have failed to process XML files if the same XML file was included in multiple files, and an alias was defined below an element that can be configured using annotations, such as structs or unions. For example, Code Generator failed to parse the following three XML files:
C.xml
<?xml version="1.0" encoding="UTF-8"?>
<dds xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<types>
<include file="A.xml" />
<include file="B.xml" />
</types>
</dds>
B.xml
<?xml version="1.0" encoding="UTF-8"?>
<dds xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<types>
<module name="P_LDM_Common">
<struct name="T_AlarmConditionDescriptionType" extensibility="mutable">
<member name="A_componentName" type="string" />
</struct>
<typedef name="T_Double" type="float64" />
</module>
</types>
</dds>
A.xml
<?xml version="1.0" encoding="UTF-8"?>
<dds xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<types>
<include file="B.xml" />
</types>
</dds>
These XML files would have failed with the following error:
ERROR com.rti.ndds.nddsgen.Nddsgen B.xml line 5:96 The annotation '@extensibility(MUTABLE_EXTENSIBILITY)' is not applicable for the context: alias.
ERROR com.rti.ndds.nddsgen.Main Fail: java.util.concurrent.ExecutionException: java.lang.Exception: The file couldn't be parsed and the rawTree wasn't generated
[RTI Issue ID CODEGENII-2127]
5.2.3.2. [Trivial] Code Generator server threw a Java Version Mismatch error on Windows
Code Generator server threw a Java Version Mismatch error on Windows systems. This error is harmless and did not affect the functionality of Code Generator server.
[RTI Issue ID TELEMETRY-43]