IBM Support

PI77000: PROBLEM REGARDING THE BEHAVIOR OF GENERATEIMPLICITCONSTRUCTORS PROPERTY

A fix is available

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • Detailed issues as below.
    Customer does not want  Rhapsody to generate  default
    constructors.
    Therefore he set the following properties in site.prp
    ·         Property GenerateImplicitConstructors Bool "False"
    As a result, when a class has ports, the ports pointers are not
    initialized to NULL.
    (e.g. Comp_1::p_C::p_C() : _p_(0) {
        itsI_Comp2 = NULL;
    } is not being generated.
    So this is not expected , as they want port to be initialized.
    If the GenerateImplicitConstructors  set to "True" then the
    proper code is being generated, but Rhapsody generates the
    implicit constructors for all classes.
    So If  set GenerateImplicitConstructors  to "False"  on the
    class or package level,and set the  property
    GenerateImplicitConstructors is set to "True" in Project level
    then the code is generated correctly.
    
    But here the problem is , they have to do it for all the classes
    in order to ignore generation of default constructor and
    generation of Port initialization.
    
    So the question here is Why when GenerateImplicitConstructors is
    set to False on class and package level, Port initialization is
    generated but when the property is set at the configuration,
    component or project level port initialization is not properly
    generated.
    This seems to be broken here .
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * Rhapsody                                                     *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * The property GenerateImplicitConstructors don't effect the   *
    * class generated for port when it is overridden on class or   *
    * package, instead the property is taken from the project.     *
    * as a result it is not possible to change the property to     *
    * false on project level because it cause port generation      *
    * without constructor                                          *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    

Problem conclusion

  • problem fixed,
    by causing the class generated for the port to have constructor
    regardless od the property
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI77000

  • Reported component name

    TLOGIC RHAPSODY

  • Reported component ID

    5724V74RP

  • Reported release

    814

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-02-22

  • Closed date

    2017-06-12

  • Last modified date

    2017-06-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

  • R814 PSN

       UP



Document information

More support for: Rational Rhapsody

Software version: 8.1.4

Reference #: PI77000

Modified date: 12 June 2017