![]() |
Telelogic DOORS (steve huntington) | ![]() |
new topic :
profile :
search :
help :
dashboard :
calendar :
home
|
||
Latest News:
|
|
Topic Title: EXCEPTION ACCESS VIOLATION ERROR Topic Summary: Created On: 8-Aug-2005 21:14 Status: Post and Reply |
Linear : Threading : Single : Branch |
![]() |
![]()
|
![]() |
|
We are getting an "Exception Access Violation Error" in just one of our modules.
The error ONLY occurs when a module is opened "read only" and then from inside the module, the mode is switched to "exclusive edit". The error does NOT occur when opened "exclusive edit" and then switched to "read only" The error message refrences one of our custom scripts. This script is in many similar modules and does not cause a problem. The script just follows an outlink and displays in the source module the value of an attribute in the target module. Once you click through the error, it does not cause a problem. In fact, the script copies the text as intended. The error is referencing the last line in the last if statement --> obj.attrDXLName = strAttr Here is our script. /* Copies a value from across an out-link, set the attribute name to that you wish to copy */ pragma runLim, 0 string strAttr = "" const string S_ATTR_1 = attrDXLName Link lnk for lnk in obj -> "*" do { //does obj have link tgtModName = fullName target (lnk) if (!open module tgtModName) { read (tgtModName, false) } Object uTgt = target (lnk) if ((uTgt != null) && (obj != null)) { strAttr = strAttr "\n" uTgt.S_ATTR_1 "" } } if (obj != null) { obj.attrDXLName = strAttr } ------------------------- Hello |
|
![]() |
|
![]() |
|
Because you can only modify the module when it is open on edit mode not read mode. Therefore, the last line obj.attrDXLName = sttrAttr is going to give you a runtime error when the module is open on read mode.
Hope this helps,
Leidy Ramirez
|
|
![]() |
|
![]() |
|
the problem is when we start in read-only and then switch to exclusive.
We do have lots of attribute DXL that works in read only mode. Again, this is the only module that has this problem. All other modules have the same attributes as this one and do not have a problem. ------------------------- Hello |
|
![]() |
|
![]() |
|
You should also check for deleted target etc.
|
|
![]() |
|
![]() |
|
In v6 I demonstrated some wierd bug in the "setExclusive" Telelogic DXL, invoked when you manually switch the edit mode from the module's "Edit" menu. The bug did something odd to the DXL environment such that no DXL would execute at all. I doubt telelogic fixed it. I ended up writing my own "SwitchOpenMode.dxl" that issues "isEdit" etc with "downgrade" commands.
Anyway, if this was my problem I'd think about some of the following: [1] is the parent module's attribute value also an attribute DXL (that is, is the source value from a grand-parent module rather than from a parent module)? [2] You may also have an issue with an empty attribute value as this causes constant updating of the Attribute DXL. Consider the following: if (!null strAttr) THEN obj.attrDDXLName = strAttr ELSE obj.attrDXLName = " " (a space). That will prevent update thrashing. [3] There may also be an issue where the current "obj" is being changed due to [1] above. Consider adding "Object oCurr = obj" at the top, then using oCurr throughout. - Louie PS: I notice all your displayed values will start with an empty line. A common technique is this: add string EOL = "" before the for link loop. Inside your update, change to "strAttr = strAttr EOL uTgt.S_ATTR)_1; then add "EOL = "\n". The effect will be that all values except the first are preceeded by an EOL. |
|
![]() |
Telelogic DOORS
» DXL Exchange
»
EXCEPTION ACCESS VIOLATION ERROR
|
![]() |
FuseTalk Standard Edition v3.2 - © 1999-2009 FuseTalk Inc. All rights reserved.