Release Note (2001-09-16) Rational Rose RealTime Service Release

HotFix 04 for General Product issues

Patch File Names:

2001A.04.00 Hotfix Patch GA-04 - This patch includes all the fixes from the Syncronized patch 2 (aka RoseRealTime2001a.04.02.293.004) and Hotfix Patch GA-03 as well as other fixes to improve Toolset Workflow Enhancement. Do NOT install Syncronized patch 2 or Hotfix Patch GA-03 for Rose RealTime after installing this patch.

Downloading Patches:

To download patches, visit our FTP site: ftp://ftp.rational.com/public/rosert/rosert2001a/Patches/HotFix04/ If you have any questions, please call our hotline at 800-433-5444. You can also reach us via email at support@rational.com

Table of Contents

1) Purpose of this Patch A) Fixes introduced in this patch B) Fixes introduced in previous patches i) From HotFix 03 ii) From Synchronized patch 2001a.04.02.293.004 iii) From Synchronized patch 2001a.04.01.293.10 2) What Has Changed A) Fixes introduced in this patch i) From Synchronized patch 2001a.04.02.293.004 ii) From Synchronized patch 2001a.04.01.293.10 3) What is Included in this Patch 4) What to do Before Installation 5) How to Install this Patch 6) What to do After Installation 7) Which Platforms are Supported 8) Known issues


1) Purpose of this Patch

This patch fixes problems reported with the General Availability Release of Rose RealTime.

This patch includes all the fixes from the Synchronized patch 2 (2001a.04.02.293.004) and HotFix 03.

A) Fixes introduced in this patch:

B) Fixes from a previous patch:

i) From HotFix 03:

ii) From Synchronized patch Rational Rose RealTime Service Release 2001a.04.02.293.004:

This patch fixes the following Toolset, code generation and RQA-RT addin problems.

iii) Fixes included from Previous versions of this patch: Rational Rose RealTime Service Release 2001a.04.01.293.10

2) What Has Changed

A) Fixes introduced in this patch:

Defect 61211 -- RoseRT crashes on startup

This could have happened for a couple of reasons.

A file load was failing because it wasn't available on the Network or the FRAMEWORKS_PATH wasn't defined properly. Now a check is added to see if the load failed and create an empty model if so.

If the location of $ROSERT_HOME was changed the registry (on UNIX) would be out of date. Modified the RoseRT script to update the registry if the directory that RoseRT was installed in has changed since the registry was last updated.

Symptoms would have been a crash with ending in the following call int CRoseApp::InitInstance(). This would appear to be a crash at: "1cICRoseAppMInitInstance6M_i" on Solaris

Defect 61891 -- Load error: Invalid client or supplier

On Open Model an error is shown in the log: "Error: Removed connecting view with an invalid client or supplier". A save and reload does not fix the problem. The save of state diagrams for excluded composite states has been corrected.

Defect 61342 -- Crash when loading new model from CM system

This occurred due to an error freeing an already loaded model. Symptoms include the Unix crash with call stack ending in: "ItemViewHGetUnit6kM_pnSCOControllableUnit"

Defect 60971 -- Intermittent crash when removing associations from a diagram

Symptoms include the Unix crash with call stack ending in: "0fEItemRremoveFromContexti'

Defect 61500 -- Crash when modifying a model while it is being built

Problem is when the user modifies their model while doing a build. Specifically, deleting elements (through redo) that show up in the build errors list after the build is completed. Symptoms include the Unix crash with call stack ending in "1cMCStdIdentityMCInternalUnkXQdDueryMultipleInterfaces6MLpnLtagMULTI_QdDI__ l"

Defect 60862 -- Intermittent Crash when doing complex inheritance manipulation

Symptoms include the Unix crash with call stack ending in: "1cSCORefinableElementbGChangingContainingClassSupertype6MpnOClassifierItem"

Defect 49097 -- Crash when running out of window resources
Defect 48380 -- Crash when running out of window resources
Defect 61360 -- Crash when running out of window resources
Defect 61260 -- Crash when running out of window resources

When the toolset opens too many windows (20-200 depending on type and contents) it was crashing in one of the following calls:

62021 MwICreateFontIndirect
61260 MwIDefWindowProc
61360 MwICreateBitmapIndirect
48380 MwClearMenuItemStructure.

This problem was compounded by a slow leak in window resources - this would lead to seemingly random crashes after many hours of window operations, especially specification windows. The toolset now does not use as many resources per window, allowing a much larger number (100-400) of windows to be used.

Defect 60961 -- ctrl-shift-d on capsule-to-class association on class diagram causes crash

There was memory stomping when the user selected something that couldn't be duplicated and pressed cancel on the dialog.

Defect 60863
Defect 60428

We have improved error recovery wrt RQA (mostly handling unknown socket failures). This will reduce the instances of the following call stack crashes

60863 int CRTestHarnessController::ReceiveMessage(unsigned long&,unsigned
long&,void*&)
60428 void CRHarnessControllerWnd::OnDoComparisons(unsigned,long)

Instead of crashing RoseRT or hanging Verify Behavior in RQART the user should see the message "An error occurred while attempting to communicate with the test harness.". When this message occurs RQART will be shut down. If the user is running a manual target that cannot be shutdown by RoseRT the user should restart the target before running Verify Behavior again

Defect 60552 -- RQA-RT Wrong signals available in selection window

In a sequence diagram, the selection of valid signals may be based on the wrong conjugation of the protocol

Defect 63859 -- RQA-RT Insufficient interface replication.

RQA will now flag (as an error) cases where a harness is generated connected to ports that are already in use.

Defect 57051 -- RQA-RT: "Cannot proceed: Verify Behaviour is already running" message when verifying in manual mode

This fix resolves any problems that involve the target failing and an exception being thrown by the RRTEI call as a result of the target failure. In addition the fix protects against errors arising from socket failures.

ii) Fixes introduced in previous versions of this patch Synchronized patch 2001a.04.02.293.004:

Defect 56221

Prior to release 6.3, the type of an attribute was not parsed: it was simply written before the name in the source file. This approach does not support function pointer types, for example. Because the code generator must now be able to parse the type, it may not contain keywords that are not part of the type grammar. For example, the keyword "mutable" is part of the "storage class" of a variable declaration. To support this type of field a new choice for "AttributeKind" is available on the "C++" tab of an attribute's properties.

Defect 56347

Excessive notifications were processed in the case of branched multi-level capsule inheritance. In rare situations notification sent to the capsule located on the different inheritance branch caused RoseRT to crash.

Defect 56368

RoseRT now requires all association roles to have unique names within a collaboration diagram. If you load a model that has one or more collaboration diagrams with non-unique association role names then the names will be corrected when the model is loaded. Messages of the form Warning: Renamed Association Role "c1" to "c1_0" in class/package "Logical View" will appear in the log. Once the model is saved the changes will be permanent.

Defect 56419

Overriding the protocol of a port role can lead to situations addressed by the resolution of defect 56455. See the description below.

Defect 56455

The code generators now produce a helpful warning that aids users in repairing the problem.

Defect 53413

Alt-Graph key combinations now work as expected

Defect 55086

Search will now examine the code in a Sequence Diagram

Defect 54995

There is new checkbox "Rebuild" in the "General" tab of the RQA-RT's "Options" screen.

Unchecked - incremental build will be used Checked - full re-build will be used

Default state: unchecked

It is recommended to keep this option in the unchecked state (i.e. use incremental build). Checked state can be used to clear out build problems (caused by manual file editing or same-name-files being overwritten).

Option will be saved with the option's set.

Change is backward compatible (i.e. previously saved options sets will be loaded by an updated RQA-RT).

New property was added into RQA-RT's automation object to expose this option: "ReBuildCode". It has boolean type: True - re-build; False - use incremental build (default).

Defect 55092

This warning has been turned into an error. The user will need to fix the model before continuing

Defect 58231 - RQA crashes when a testcase is run.

During the validation of the sequence diagram, incorrect capsule role was picked up. Exception occurs when validation is performed on the message send to/from the port that was added in the capsule being inherited. Now the correct capsule role will be selected for validation.

Defect 56272 - ObjecTime TestScope MSC conversion fails

During the conversion of sequence diagrams imported from OTD, RQA-RT did try to convert "return " statements. However, it didn't take into account that word "return" can be a part of a string or comment. This conversion rule has been removed and "return" statements will be left intact, as they come from OTD.

It is worth noticing that code from the message's "DATA" section will be put into the function that has "void" return type. Should RQA-RT's "Verify Behavior" be run on such diagram, compiler error showing incompatibility of function return values will be brought up. In such a case "return <boolean=;" statements would have to be changed into "return;" statements.

Defect 54635 -- RTMI: Connector error using "Generate Unique Identifiers For All Elements"

A problem was encountered where unique id's were being generated for dep references after a recreation occurred. This causes problems with MI by generating a "(1)" in front of the reference which corrupts the file.

iii) Fixes included from Previous versions of this patch: Rational Rose RealTime Service Release 2001a.04.01.293.10

Toolset

Defect rose00054150 - the WalkModel script (found in Examples/RRTEI/SummitBasic) was fixed to check that a UseCase had a StateMachine before attempting to walk the StateMachine.

Three defects related to Solaris Help system crashes have been fixed.

RTJava

Model Integrator

C++ Code Generator

RQA-RT

1. Changes related to relay ports.

Relay ports are a logical modeling concept. When RoseRT generates code there is a single connection between the source and target. The raw data which the RTS provides in a trace shows only this connection. RQART works with RoseRT's Relay Port Tracing Feature to produce a trace which shows the single message split into its' logical components as they are indicated on the specification diagram. Several changes were made to improve the handling of relay ports.

1.1 rose00054030 RQART checks the specification diagram for correctness. Previously it required that all messages be sent between logically connected ports. This check has been downgraded to a warning to allow diagrams that don't show all the relay port connections to be verified.

1.2 rose00054030 RoseRT was enhanced to handle relay ports used in the manner described in the help entry "Examples/Patterns/Safe Dynamic Structure Pattern/Accessor Capsules".

1.3 Defect rose00054151 (PR 22725) was fixed. This test involved a sequence diagram with a message from a test driver directly to a nested capsule. The sequence diagram did not include an instance for the container of the nested capsule which was connected to the nested capsule by a relay port. Note that RQART does not automatically create container capsules for a nested capsule when the container is not included in the sequence diagram. In order for the test case to work the container capsule must be created either by a previous test or by explicitly including in the sequence diagram.

1.4 rose00054030 A problem with RoseRT's Relay Port Tracing Feature when used from RQART to show a message from a driver to a container capsule and then to a nested capsule through a relay port was fixed.

2. Changes related to RQART's "Convert ObjecTime TestScope Diagrams"

2.1 A problem that caused an exception to be thrown and conversion stopped was fixed.

2.2 A potential problem with in and out signals with the same name but different data classes was fixed.

2.3 A problem where the code generated by the conversion doesn't compile. This was caused by using the function that was required to send data on a signal to execute code when there wasn't any data to be sent. This problem has been fixed for cases where the signal has no data class.

2.4 rose00054023 The conversion was enhanced to determine the receiver port on any message that is sent between two instances that have a direct logical connection from the sender port. This calculation is required since the receiver port information wasn't available in the original ObjecTime TestScope diagrams. Note that this calculation significantly increases the time required to perform the conversion. Diagrams which have messages between instances that skip relay ports will still require the receiver port to be entered manually.

2.5 A problem with leading underscores in the name of the collaboration containing the converted sequence diagrams (Converted_OTD_MSCs) was fixed.

2.6 A problem with certain error messages that tried to hyperlink directly to a sequence diagram, which caused an exception, was fixed.

2.7 A potential problem dealing with registered ports was fixed.

2.8 A potential problem where certain warning level issues could skip part of the conversion was fixed.

Connexis

This is a Work-around for rose00053975 which is characterized by a core dump on target when the Viewer disconnects from a target agent when there is trace activity on-going. 1. Open the model ROSERT_HOME/Connexis/Model/DCS.rtmdl 2. Open the capsule LogicalView::DCSComponents::DCSController::RTDController 3. Open the transition labeled deregisterSPP on the Operational state. 4. Change line 13 from 'endPoint->endPort.port->getName()' to 'index'. Before the edit, the trace tag will look like: RTD_TAG_TRACE_EVENT(RTD_TRG_CONTROLLER, RTD_TRACE_OPERATIONAL, RTD_C_DEREG_SPP_IND, endPoint->endPort.port->getName()); After the edit it should look like: RTD_TAG_TRACE_EVENT(RTD_TRG_CONTROLLER, RTD_TRACE_OPERATIONAL, RTD_C_DEREG_SPP_IND, index); 5. Rebuild the library or libraries you typically use and copy them to ROSERT_HOME/Connexis/C++/lib/<lib_name< where !lib_name! is the name of the library you just built. For example, if a new DCS library is built from the DCSlib_Std_31 component, copy the library from ROSERT_HOME/Connexis/Model/DCSlib_Std_31/build to ROSERT_HOME/Connexis/C++/lib/NT40T.x86-VisualC++-6.0

3) What is Included in this Patch

The following files are included. All paths are relative to the $ROSERT_HOME directory.

GA-04.win32.tar.gz

C++/cpp.pty
Examples/RRTEI/SummitBasic/WalkModel.ebs
rosert_prof_readme.htm
rosert_readme.htm
Connexis/Docs/rosert_connexis_readme.htm
Help/releasenotes.pdf
Help/rrtprofessional.pdf
RTJava/RTJavaProject.rtpty
RTJava/RTJava.rtpty
RTJava/TargetRTS/*
RTJava/TargetRTS.rtmdl
RTJava/classes/*
RTJava/normal/*
RTJava/Samples.rtmdl
RTJava/Java.rtmdl
RTJava/scripts/
RTJava/scripts/Makefile
RTJava/scripts/rtcomp.pl
RTJava/scripts/rterror.pl
RTJava/scripts/RTexecute.pl
Examples/Models/Java/RTJavaPingPong.rtmdl
Connexis/Docs/rosert_connexis_readme.htm
bin/win32/rtcppbld.dll
bin/win32/rtcppgen.exe
bin/win32/rtcgen.exe
bin/win32/rtjavaui.dll
bin/win32/rtjavagen.exe
bin/win32/RoseRT.exe
bin/win32/RrtRes.dll
RQART/bin/win32/rqartRes.dll
RQART/bin/win32/rqart.dll
bin/win32/modelintRT.exe
bin/win32/modelintRTres.dll

GA-04.SUN5.tar.gz

C++/cpp.pty
Examples/RRTEI/SummitBasic/WalkModel.ebs
rosert_prof_readme.htm
rosert_readme.htm
Connexis/Docs/rosert_connexis_readme.htm
Help/releasenotes.pdf
Help/rrtprofessional.pdf
RTJava/RTJavaProject.rtpty
RTJava/RTJava.rtpty
RTJava/TargetRTS/*
RTJava/TargetRTS.rtmdl
RTJava/classes/*
RTJava/normal/*
RTJava/Samples.rtmdl
RTJava/Java.rtmdl
RTJava/scripts/
RTJava/scripts/Makefile
RTJava/scripts/rtcomp.pl
RTJava/scripts/rterror.pl
RTJava/scripts/RTexecute.pl
Examples/Models/Java/RTJavaPingPong.rtmdl
Connexis/Docs/rosert_connexis_readme.htm
bin/RoseRT
bin/rrtExceptionInput
bin/sun5/rtcppbld.dll
bin/sun5/rtcppbld.rsb
bin/sun5/rtcppgen
bin/sun5/rtcgen
bin/sun5/rtjavaui.dll
bin/sun5/rtjavaui.rsb
bin/sun5/rtjavagen
bin/sun5/RoseRT
bin/sun5/RoseRT.rsb
RQART/bin/sun5/librqart.so
RQART/bin/sun5/rqart.rsb
bin/sun5/modelintRT
bin/sun5/modelintRT.rsb
bin/sun5/RationalRoseRT.tlb
bin/mw/bin-sunos5_optimized/hh
bin/mw/bin-sunos5_optimized/mwcleanup
bin/mw/bin-sunos5_optimized/mwfwrapper
bin/mw/bin-sunos5_optimized/vbstest
bin/mw/bin-sunos5_optimized/winhlp32
bin/mw/lib-sunos5_optimized/hhctrl.ocx
bin/mw/lib-sunos5_optimized/libadvapi32.so
bin/mw/lib-sunos5_optimized/libcomctl32.so
bin/mw/lib-sunos5_optimized/libcomdlg32.so
bin/mw/lib-sunos5_optimized/libgdiuser32.so
bin/mw/lib-sunos5_optimized/libitircl.so
bin/mw/lib-sunos5_optimized/libitss.so
bin/mw/lib-sunos5_optimized/libkernel32.so
bin/mw/lib-sunos5_optimized/libmfc400s.so
bin/mw/lib-sunos5_optimized/libmfc400su.so
bin/mw/lib-sunos5_optimized/libmlang.so
bin/mw/lib-sunos5_optimized/libmshtml.so
bin/mw/lib-sunos5_optimized/libmsvcrt.so
bin/mw/lib-sunos5_optimized/libmwflocator.so
bin/mw/lib-sunos5_optimized/libole2ui.so
bin/mw/lib-sunos5_optimized/libole32.so
bin/mw/lib-sunos5_optimized/liboleaut32.so
bin/mw/lib-sunos5_optimized/librpcltscm.so
bin/mw/lib-sunos5_optimized/librpcrt4.so
bin/mw/lib-sunos5_optimized/libshell32.so
bin/mw/lib-sunos5_optimized/libshlwapi.so
bin/mw/lib-sunos5_optimized/liburlmon.so
bin/mw/lib-sunos5_optimized/libuuid.so
bin/mw/lib-sunos5_optimized/libvbscript.so
bin/mw/lib-sunos5_optimized/libwfsapi.so
bin/mw/lib-sunos5_optimized/libwinmm.so
bin/mw/lib-sunos5_optimized/libwsock32.so
bin/mw/setmwruntime

4) What to do Before Installation

Check that there is a valid Rose RT v6.3 installed and ensure that file and directory permissions allow writing to the file listed in section 3.

If Rose Real Time has been network/admin installed, the patch applies to the server machine only. Please contact your administrator to install the patch.

5) How to Install this Patch

	Step 1. Ensure there is no running instance of Rose RealTime on the 
		system to update.

	Step 2. For Unix, ensure that the file permissions on the 
		$ROSERT_HOME/Help directory is writable for everyone
		using this installation of Rational Rose RealTime.

		To set this permission, type the following commands:

		cd $ROSERT_HOME
   		chmod ug+w Help

		Making the $ROSERT_HOME/Help directory writable ensures 
		that the online help system can generate .chw files used by
		the Index tab of the online help system.
		The online help system generates a .chw file when a user 
		accesses the Index tab for a particular .chm file for the 
		first time only.

		For more information about setting the appropriate
permissions 
		required for your users, contact your System Administrator. 

	Step 3. Ensure that you DELETE ALL EXISTING .chw files from your 
		$ROSERT_HOME/Help directory. 

		Any existing .chw files that you may have will not
correspond 
		to the new help files.

	Step 4. Copy the appropriate tar file for your platform to your 
		$ROSERT_HOME directory and untar them there.

	- on Solaris you would need GA-04.SUN5.tar.gz

		cd $ROSERT_HOME
		gunzip < GA-04.SUN5.tar.gz | tar -xf -

	- on HPUX you would need GA-04.HPUX.tar.gz

		cd $ROSERT_HOME
		gunzip < GA-04.HPUX.tar.gz | tar -xf -

	- on Windows you would need GA.04.win32.tar.gz use winzip
		to extract the files into %ROSERT_HOME% -- usually this is
the
		directory "C:\Program Files\Rational\Rose RealTime".  Note
that
		winzip is able to read the the .tar.gz file, but it may
report that
		"Archive contains one file: GA-04.win32.tar.gz Should WinZip
		decompress it to a temporary folder and open it?", answering
Yes
		will allow the process to proceed.

6) What to do After Installation

The accompanying tar files are no longer needed. However, if you wish to retain them if a re-installation is required, place these tar files in $ROSERT_HOME/specials.

Toolset

Run the toolset and ensure that the build number is 6.3.126.0. (If it is not this then the patch was not applied correctly.)

RQA-RT

Run the toolset and ensure that the build number of RQA is 6.3.140.0. (If it is not this then the patch was not applied correctly.)

Online Help

To verify the online help, start Rose RealTime, from the Help menu, click contents, then click the Index tab. If the Index crashes or is blank, then the patch was not applied correctly.

RTJava

Reload and Rebuild Java Models

C++ Code Generator

Rebuild C++ models

7) Which Platforms are Supported

Solaris and Windows Host Platforms

8) Known issues

Some Windows virus checking software will warn about the gzip'ed files (those files with the .gz extension). This warning can be safely ignored. There should be no virus's reported during the extraction of the patch files when using winzip.

Please review the information which can be found at the Rational Rose RealTime technical notes web site at:

http://solutions.rational.com/solutions//