Patch P222 released – Update on 28617

On Friday, May 27, 2011, the patch P222 was released. In this patch we solved problem 29138 (“Correct fix for 28617 and remove side effects of fix for 29010”), which is the “re-fix” of the problem 28617 (“Crash when using global variables after changing the library”).

Please note that the final solution of problem 29138 is slightly different then we described previously in the article “Patch P219 for version 9.3.02 has been withdrawn (Updated)”. In the mentioned article it was stated that (in the described scenario) the “global module’s data scope [will be changed] to the library’s data scope” – meaning that Uniface will only look for a global variable or Proc in the library the calling global Proc belongs to and not in the component library. After careful consideration we came to the conclusion that the proposed solution is not compatible with the search order for global objects. Instead the library of the calling global Proc will now be added to the search paths for global objects. This means for the different global objects the following:

Search Path for:

a.    Global Proc:

1.    Global Proc Library
2.    Component Library
3.    Application Library
4.    SYSTEM_LIBRARY

b.    Global variables:

1.    SYSTEM_LIBRARY
2.    Application Library
3.    Component Library
4.    Global Proc Library

 Example: THISFORM is bound to THISLIB, and in one of the triggers of THISFORM a call to a module in OTHERLIB is made in the form of:

call OTHERLIB:MODULE(param1, param2, …), or

$1 = OTHERLIB:MODULE(param1, param2, …)


Uniface will apply the following search path:

 a.    If the proc in OTHERLIB:MODULE uses a global Proc:

1.    OTHERLIB
2.    THISLIB
3.    APPLIB (Application Library)
4.    SYSTEM_LIBRARY

b.    If the proc in OTHERLIB:MODULE uses a global variable:

1.    SYSTEM_LIBRARY
2.    APPLIB (Application Library)
3.    THISLIB
4.    OTHERLIB

The Uniface Library topic “Search Order for Global Objects” will be updated shortly so that it’ll reflect the changes introduced by the solution for the problem 29138.

Note:

  • For Uniface 9.4 the fix for problem 29138 will be provided with the patch R114.

Leave a Reply