Fixes are available
APAR status
Closed as program error.
Error description
Description ------------ Please find a sample model and the related files attached. As per the information under the section 6.3.11 of the RiA_CG_User_Guide states:- ?6.3.11. User Active class for ravenscar To have a ravenscar compliant model with user active classes, those classes must be created statically. To do this, the property Ada_CG:Class:BaseNumberOfInstances must be filled with the number of instance that the model needs.? However, on setting this property to ?1? for the Builder2 class, results in a compilation error. ?builder2.ads:108:03: premature usage of incomplete private type 'Builder2_t' defined at line 31?. The code generated for component configuration HOST_Ravenscar_state: Ports_System provides an example of this. As per the discussion with sodius team - It?s a defect in code generator. In this case, the instance of the class should also be private, and we should create an accessor to the instance. However, not able to get the constructor code located in the correct position i.e. before the Init_Ports (this); The code looks like this: procedure Initialize (this : in out Builder_1_2_3_4_t; this_acc : in Builder_1_2_3_4_acc_t; active_acc : in Oxf.active.Active_wide_acc_t) is --+[ operation Initialize().Variables --+] begin this.itsBuilder1 := new Builder1.Builder1_t; Builder1.Initialize(this.itsBuilder1.all, this.itsBuilder1, active_acc); this.itsBuilder3 := new Builder3.Builder3_t; Builder3.Initialize(this.itsBuilder3.all, this.itsBuilder3, active_acc); this.itsBuilder4 := new Builder4.Builder4_t; Builder4.Initialize(this.itsBuilder4.all); Init_Ports (this); --+[ operation Initialize() this.itsBuilder2 := Builder2.get_Instance_1 ; Builder2.Initialize(this.itsBuilder2.all, this.itsBuilder2); --+] end Initialize; On manually editing this Ada package and change the code as below then every thing works. procedure Initialize (this : in out Builder_1_2_3_4_t; this_acc : in Builder_1_2_3_4_acc_t; active_acc : in Oxf.active.Active_wide_acc_t) is --+[ operation Initialize().Variables --+] begin this.itsBuilder1 := new Builder1.Builder1_t; Builder1.Initialize(this.itsBuilder1.all, this.itsBuilder1, active_acc); this.itsBuilder3 := new Builder3.Builder3_t; Builder3.Initialize(this.itsBuilder3.all, this.itsBuilder3, active_acc); this.itsBuilder4 := new Builder4.Builder4_t; Builder4.Initialize(this.itsBuilder4.all); --+[ operation Initialize() this.itsBuilder2 := Builder2.get_Instance_1 ; Builder2.Initialize(this.itsBuilder2.all, this.itsBuilder2); Init_Ports (this); --+] end Initialize; Sodius team agrees - the problem with code generation of call to init_port(). Also, there is no way to control position of elements in the constructor. And the init_port is always generated when there is a link between ports. The only solution should be to remove the link between ports, and to create operation ini_port manually. For customer it?s a severe issue and the work around of manual editing the links is not a feasible solution and they wants this to be fixed at the earliest. Also, they are looking for a way to allow the user flexibility as to where constructor Code inserts are located within the Initialize procedure.
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: * **************************************************************** * PROBLEM DESCRIPTION: * **************************************************************** * RECOMMENDATION: * **************************************************************** Defect with Ada code generator for call to init_port()
Problem conclusion
Fixed in 7.6.1.2
Temporary fix
Comments
APAR Information
APAR number
PM64935
Reported component name
TLOGIC RHAPSODY
Reported component ID
5724V74RP
Reported release
753
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2012-05-18
Closed date
2012-07-12
Last modified date
2012-07-12
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
TLOGIC RHAPSODY
Fixed component ID
5724V74RP
Applicable component levels
R753 PSN
UP
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SS7P9W","label":"Rational Rhapsody"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.5.3","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]
Document Information
Modified date:
28 October 2021