#120 Errors in ESI$VariableDictionary while deleting a library

v4.1.1
open
Core Model (79)
5
2012-09-19
2004-03-19
Eric Lambart
No

Using ESI library v.4.1.1.1 here. Not sure if this is
a Core Model or an IDE issue, but when deleting a
library I encountered this error. I've seen it before,
but don't think it happens every time a library is deleted.

The library does appear to have been successfully
removed. I guess that's the problem here. =)

The following messages appeared in the "debug" pane:

Nonexistent Class Library ANTLR
Class: Class
OID: N^VESantlt(2,63)
18+8^VESo0066
Service: Factory>InitClassVars
Implemented by class:
Called by Method:
ESI$VariableDictionary.Primary::CompileClassDefs,
Version: 23 <Main>+156
150379506,THRTE+5^VESOOPE1,%GTM-E-SETECODE, Non-empty
value assigned to $ECODE (user-defined error trap)
Nonexistent Class Library ANTLR
Class: Class
OID: N^VESantlt(2,63)
17+8^VESo002b
Service: Factory>InitClassVars
Implemented by class:
Called by Method:
ESI$VariableDictionary.Primary::Compile, Version: 98
<Main>+51
150379506,THRTE+5^VESOOPE1,%GTM-E-SETECODE, Non-empty
value assigned to $ECODE (user-defined error trap)

Discussion

  • Eric Lambart
    Eric Lambart
    2004-03-19

    Logged In: YES
    user_id=172059

    This also happened while deleting the EsiQuery library, but
    NOT when deleting EsiQuery's Java library. Hope that helps.
    I may look into it eventually myself, but at least it's
    recorded here in the bug database.

     
  • Logged In: YES
    user_id=84471

    Overview: Deleting a library causes the execution of the
    DESTROY (destructor) method in each class within the library.
    The class destructor destroys each object of a class
    (Variables, Interfaces, etc.) and, consequently, that objects
    destructor is executed. Under normal circumstances, some
    objects will be compiled throughout the hirearchy . This is
    unnessary when deleting an object. Consequently, throughout
    the hirearchy a boolean property called CompileLock exists.
    Compiles are conditional on CompileLock being not true. If
    true, the compile will not happen.

    Problem: The conditional checks for CompileLock broke down
    in Variable Dictionary. The variable I%CompileLock used by
    the Property CompileLock got changed to I%DefCompileLock.
    Consequently, variables were being compiled resulting in
    errors because pointers associated with the variables were
    now invalid. Additionally, the Variable Dictionary CompileLock
    value property was using a parameter variable that did not
    exist.

    Fix: The associated 919222.opf contains the methods that fix
    the problem. Import the file from the EsiObjects development
    UI.

     
  • Bug 919222 Folder Patch File

     
    Attachments