Pssst, 9.5 Servicepack E102 (withdrawn) available on frontline

Author: ulrichmerkel@web.de (ulrich-merkel)

currently trouble with this patch, see the related document http://uniface.communityzero.com/uniface?go=6024728

Not reported, but available from http://frontline.compuware.com//products/uf/fixes/patchlist/patches9501.aspx

________________________________________
BUG 25147:  GRID: Paint of Grid doesn't refresh after dynamic attach to a splitbar


Description:
 When a Grid widget is dynamically attached to a splitbar the paint doesn't
 refresh (so two Grid widgets are shown). The old paint of the Grid only
 disappears after resizing with the splitbar.


Solution:
 This problem is solved.

________________________________________
BUG 28535:  Crash when combo box has a valrep of more than 149 characters


Description:
 In Uniface 9 a crash occurs when a combo box has a valrep of more than 149
 characters and a combo box value is selected in runtime. In Uniface 8 the limit
 was larger.


Solution:
 This problem is solved.

________________________________________
BUG 29116:  entitycopy: Context item in $procreturncontext returns "Invalid context action"


Description:
 When checking the Context item in $procreturncontext after executing entitycopy
 then it will return "Invalid context action" instead of "EntityCopy" (as
 documented).


Solution:
 This problem is solved.

________________________________________
BUG 29153:  $clock/$date/$datim do not set $procerror


Description:
 When these functions are called, the return value can be checked. If the value
 is empty, the following procerrors should be returned:
 $date  = -1004 (Date not valid)
 $clock = -1005 (Time not valid)
 $datim = -1006 (Datetime not valid)$procerror is not set by the functions
 $clock, $date and $datim . In case $procerror is set before one of the
 mentioned functions is executed then it will not set the appropriate Proc error
 if an error occurs.

 This problem can be replicated with any Uniface version.

 For example: if an invalid argument is passed to $date, i.e. "myDate =
 $date("15/15/2010")", then $date will return an empty string and $procerror is
 again -50 - it however should return in this case -1004 (UPROCERR_DATE; "Not a
 valid Date value.").


Solution:
 This problem is solved.

________________________________________
BUG 29193:  $replace does not reset $procerror to in case of success


Description:
 The Proc function replace does not reset $procerror to 0 in case it
 successfully could replace the specified substrings of a string.

 Consider the following Proc:

 $1 = $replace("a,b,c", 1, "", ";", -1)
 $1 = $replace("a,b,c", 1, ",", "", -1)

 The first line of Proc will return an error since the SearchFor parameter is
 empty and $procerror is set to -1118 (meaning: "The argument specified is
 incorrect."). But when the second line of Proc (which is valid and will remove
 all commas from the string "a,b,c") is executed then $procerror still return
 -1118.

 So in case the Proc error of each $replace statement is checked if it's <0 then
 this could trigger incorrect error messages.

 Expectations: $procerror should return 0 when $replace was successful.


Workaround:
 Apply reset $procerror to reset the $procerror to 0 before each Proc function,
 in case the Proc error of each Proc function execution is checked if it is <0.
 For instance,
  reset $procerror
  $1 = $replace("a,b,c", 1, "", ";", -1)
  if ($procerror<0)
    ;...
  endif
  reset $procerror
  $1 = $replace("a,b,c", 1, ",", "", -1)
  if ($procerror<0)
    ;...
  endif


Solution:

 see the doc updates in the liabrary.

________________________________________
BUG 29223:  Performance problem on Solaris when using DLM 4.3 (or higher)


Description:
 When Uniface version 9.3 or 9.4 is using DLM 4.4.7 (or higher) on Sun SPARC
 Solaris 9 or 10 then the performance (of an application) is significantly lower
 compared to when an earlier version of DLM is used (e.g. 4.2.7).


Workaround:
 The described problem can be solved by setting and exporting the environment
 variable:
 
 LD_PRELOAD_64=libmalloc.so
 
 in the Uniface environment - make sure that libmalloc.so can be found in the
 search path or specify the full path where it's located (e.g.
 /usr/lib/sparcv9/libmalloc.so).
 
 Please note that if no specific environment is being set up for userver (by
 means of the login profile or a wrapper script), the variable has to be set and
 exported in the environment of the urouter so that it is inherited by all
 userver processes.
 
 For a detailed explanation, see the following article on the Oracle Sun support
 site:
 "Threaded applications making heavy use of the memory allocator may scale
 poorly [ID 1018822.1]"


Solution:
 This problem is solved.

________________________________________
BUG 29254:  Syntax Auto jump does not work using Grid Widget on Japanese Windows.


Description:
 In Uniface 9.4.01 on Japanese Windows the field syntax Auto jump (JMP) does not
 work using the Grid Widget. Using a normal entity or English Windows, the
 autojump works fine.


Solution:

 Auto Jump field syntax (JMP) has never worked before for the grid widget when
 NLS setting in the [uniface_dlls] section of INI file is configured as Japanese
 (JPN), Chinese (CHIB or CHIZ) or Korean (KOR). After this fix it will be
 working so that if you expect AutoJump is always OFF on Asisan environment, it
 could be a surprise.

 Please note that the maximum field length is counted in character. For example,
 C10 field will jump to the next field when you enter 10 characters, but C10 is
 able to store only 10 bytes. On Japanese environment you can enter 10 Japanese
 characters in the field but cannot jump or leave the field because 10 Japanese
 characters have more than 10 bytes. If you enter 10 characters into the field,
 use W10 field interface.

________________________________________
BUG 29265:  Executing $rscan back to back or after $scan is causing a crash


Description:
 When the Proc function $rscan is executed back to back or right after the
 function $scan then under specific circumstances Uniface will crash.

 Consider the following scenarios:

 1. $rscan back to back:

    $1 = $rscan ("The quick brown fox", "quick")
    $2 = $rscan ("The quick brown fox", "fox")

 2. $rscan after $scan

    $1 = $scan ("The quick brown fox", "quick")
    $2 = $rscan ("The quick brown fox", "fox")

 In case the above Proc is placed in the Execute trigger of a component a crash
 can be replicated. The problem does not occur when (for example) a putmess
 statement is executed first or between the two functions. The mentioned issue
 also does not occur when the Proc is placed in (for example) the Detail trigger.

 The crash also cannot be replicated in case the beginning of the source
 parameter value of the $rscan/$scan function is different. For example:

 1. This will cause a crash:

    $1 = $scan ("The quick brown fox", "quick")
    $2 = $rscan ("The quick brown fox123", "fox")

 2. This will work correctly:

    $1 = $scan ("The quick brown fox", "quick")
    $2 = $rscan ("123The quick brown fox", "fox")


Solution:

 The bug has been fixed.

________________________________________
BUG 29266:  Duplicate error when saving process package


Description:
 In Uniface flow 9.4.01 when saving a process package after a consistency check
 a duplicate error occurs if one task has been assigned to All Actors in Unit.


Solution:

 This problem is caused by the fact that Flow assumed that an assignment rule
 returns a specific Actor not more than once, but some assignment rules may
 return the same actor multiple times.

 This problem is solved.

 NB: this bug had the same symptoms as b29500 (fixed in the same patch) but has
 a different cause.

________________________________________
BUG 29268:  $nls_locale with numeric fields, getlistitems, putlistitems and putmess


Description:
 In Uniface 9.4.01 when using the asn setting $nls_locale (for instance with
 value de_DE) incorrect results are returned or displayed when used for numeric
 fields in combination with getlistitems, putlistitems, putmess and the
 debugger. In the examples below F1 is a numeric N7.3 field with display format
 DIS (-zz9P999) format and is given the value of 8.270 which is correctly shown
 of the form as 8,270. TEST129634 is the name of the model entity used.

 1)
 occ_list="PK=27;F1=8.271"
 getlistitems/occ occ_list, "TEST129634"

 and

 2)
 putlistitems/occ occ_list, "TEST129634"
 getlistitems/occ occ_list, "TEST129634"

 give strange results when displayed on the form. 1) displays *8271* and 2)
 displays 827,000 instead of the expected 8,270. Also putmess returns 8.270
 instead of 8,270 in teh messageframe and the same applies when looking at the
 value in the debugger.


Solution:
 This problem is solved.

________________________________________
BUG 29273:  Executing macro "^REM_SELECT" might cause crash on Windows Vista/7


Description:
 Uniface will crash under specific circumstance in case selected text is removed
 from a Unifield when using the Structure Editor Function ^REM_SELECT (by
 executing  'macro "^REM_SELECT"').

 Consider the following scenario:

 * on a form a unifield is painted that is 10 cells wide and 1 high.
 * the following text is assigned to the field:

   "12345 123456 12345678 123456789 1234567890 123456 12 "

 * the content of the field is then removed ("word" by "word") from the end
 using the following Structure Editor Function sequence that is executed (for
 example) in the Detail trigger of the field:

   macro "^PREV_WORD^SELECT^NEXT_WORD^REM_SELECT"

 => After pressing the Detail trigger for about 5 times Uniface will crash

 The above described problem can only be replicated on Windows Vista, Server
 2008, 7, and Server 2008 R2. Until now it could not be reproduced on older
 Windows versions, like for example Windows XP or Server 2003.

 And the issue only occurs when using Uniface 9.2.03 + O311 (and higher),
 version 9.3.02 + P210 (and higher), or version 9.4.01 + R101 (or higher).


Solution:

 Crash doesn't occur anymore.

________________________________________
BUG 29278:  Hourglass persists when clicking on a hyperlink that triggers a print.


Description:
 In Uniface 9.4.01 the hourglass persists when clicking on a hyperlink that
 triggers a print. This is not the case when a print is triggered by the detail
 trigger of a command button.


Solution:
 This problem is solved.

________________________________________
BUG 29281:  UF94: Changing Proc in Proc Editor Zoom Window stops working in some cases


Description:
 Under specific circumstances it is not possible anymore to change Proc code in
 the Zoom Window of the Proc Editor. The problem usually occurs when performing
 the following actions in the Zoom Window:

 * Copy (using the key combination Ctrl+C)
 * Paste (using the key combination Ctrl+V)
 * Find and Replace All (using the key combination Ctrl+H)

 Consider the following scenario:

 1. In the Proc Editor of the Component Editor open any trigger of a component
 2. Add a new Proc statement (for example show) and copy it (Ctrl+C);
    Or select an existing line of Proc and copy it
 3. Paste the copied Proc statement into a new line (Ctrl+V)
 4. Do "Find and Replace" (Ctrl+H)
    4a. In the Replace Dialog Box search for ("Find what") a Proc statement that
 exist at least twice in the Trigger (e.g. show)
    4b. Enter something for "Replace with" (e.g. putmess "TEST")
    4c. Press "Replace All"

 => The affected Proc is (at first glance) replaced and immediately undone again

 => After closing the Replace Dialog Box it's not possible anymore to change any
 Proc in the Zoom Window.

 The above described problem only occurs when using the Zoom Window of the Proc
 Editor of Uniface 9.4.01. It cannot be replicated with earlier versions.


Solution:
 This problem is solved.

________________________________________
BUG 29282:  Uniface 9 View Listing twice as slow as in Uniface 8


Description:
 In Uniface 9 View Listing seem to take twice as long as in Uniface 8.
 This is very noticeable when the listing is large.

 For a 3Mb file the figures for View Listing are:

                  Uniface 9    Uniface 8
 ---------------------------------------
 procbox=on       20-30 sec       12 sec
 procbox=off         12 sec        9 sec

 When procbox=off then showing the listing is much faster.
 Proc syntax coloring seem to take much time.


Solution:
 This problem is solved.

________________________________________
BUG 29283:  Certain jpg images not displayed in Uniface Nine


Description:
 Certain jpg images not displayed in Uniface Nine
 This problem occurs in Uniface Nine.
 The same image displays well in Uniface Eight.
 When the image is stored using Uniface Nine the stored value is correct: The
 image displays well retrieved with Uniface Eight.
 When such an image is stored with Uniface Eight and retrieved with Uniface Nine
 the image is not displayed.


Solution:
 This problem is solved.

________________________________________
BUG 29287:  Uniface might hang or crash in case splash screen is enabled.


Description:
 Uniface might hang or crash under specific circumstances in case the
 application splash screen (logo) is not disabled.

 This issue can be replicated (for example) when on Windows 7 (or Windows Server
 2008 R2) a Visual Basic 6 ActiveX User Control is instantiated in the Uniface 9
 OCX Container and logotime is set to >= 0. In case logotime = off then the
 instantiation of the OCX control is working without any problems.

 This problem also has been reported when certain Windows kernel level filter
 (like for example a Virus Scanner) are used. In one specific case a customer
 reported a hang problem with Uniface 8.4 on a Citrix system that also had the
 Appsense Application Manager 7 (kernel level filter driver that provides rules
 based access permissions) installed. Together with the 3rd party (Appsense) it
 was concluded that the splash screen (logo) thread is causing a race condition
 with certain modules of the Appsense Application Manager. The problem did not
 occur when the splash screen thread was disabled (by setting logotime = off).


Workaround:
 Two ways:
 
 1.Switch off the logotime by assigning off.
 
 2. Changing the threading model of the User Control from "Single Threaded" to
 "Apartment Threaded". When creating an ActiveX User Control in Visual Basic 6,
 the project properties have a "Threading Model" setting which provides two
 thread models, Single Threaded and Apartment Threaded.


Solution:

 This issue is resolved by a setting LogoSync=on in the .ini file. This is a new
 initialization setting, which determines whether the logo screen and the
 Uniface application are launched in parallel or in sequence.

________________________________________
BUG 29295:  Print and print/preview not RTL in Hebrew


Description:
 In Uniface 9.4.01 the print and print/preview is not RTL on Hebrew Windows. It
 was working correctly in previous Uniface versions 6, 7 and 8.


Solution:
 This problem is solved.

________________________________________
BUG 29303:  Sort statement, without entity specified, crashes Uniface.


Description:
 Sort statement, without entity specified, crashes Uniface.

 According to the documentation there should be an entity specified, but the
 compiler gives no warning or error message when the entity specification is
 missing.

 Uniface 9.3 doesn't crash, but Uniface 9.4 and 9.5 crah.


Workaround:
 Explicitly activate an entity using proc code, before the sort calling. Ex.:
 setocc "SALES" , 1


Solution:
 This problem is solved.

________________________________________
BUG 29304:  Uniface does not check syntax of accelerator key settings defined in INI


Description:
 When reading the accelerator key settings from the INI file (section
 [accelerators]) then Uniface does not check if the syntax of the accelerators
 is correct.

 For example, the following keystroke combination (accelerator) contains a typo
 (instead of "Ctrl" "Crtl" is defined):

 fileopen=Crtl+O

 Uniface will not complain about this mistake and it will assign the accelerator
 "O" to the logical (menu) function. This means that every time the user will
 type an O the File Open dialog box will be shown.

 Expectation: Uniface should throw an error or warning in case the syntax of an
 accelerator is incorrect and no keystroke combination should be assigned to the
 related logical (menu) function.


Solution:

 Enhancement to return the error report such as "Accelerator key Crtl+O for
 fileopen is not valid." in the transcript log by invalid key in the
 [accelerators] section of ini file and no key is registerd as the accelerator
 in that case.

________________________________________
BUG 29305:  UPOPMAIL Sendmail should use fully qualified hostname in SMTP dialog


Description:
 When you send a mail using UPOPMAIL, Uniface issues a HELO command with just
 the hostname as argument. This has worked so far, but it's not actually correct.
 The RFC says we must use a fully qualified hostname, or if that is not
 available, the IP address. Actually, some SMTP servers actively reject a non-
 qualified hostname:

 UPOPMAIL: <D0> SENDMAIL: Got reply on rcpt to command, code: 504, reply:
 <FINANCESERVER>: Helo command rejected: need fully-qualified hostname


Solution:
 This problem is solved.

________________________________________
BUG 29306:  Menu accelerators not working when mouse cursor is hovering over header button


Description:
 The menu accelerators do not work - the assigned menu item is not selected -
 when the mouse cursor is hovering over a Command Button with the Representation
 Header.

 The above described problem cannot be replicated in case a Command Button is
 using any other Representation.


Solution:
 This problem is solved.

________________________________________
BUG 29307:  Header Button remains highlighted under specific circumstances


Description:
 When the mouse cursor hovers over a command button of type Header then the
 button is highlighted - the apperance of the highlighting depends on the active
 Windows Visual Theme. But under specific circumstances the highlighting does
 not disapear when the mouse is moved away from the button. The problem most
 likely occurs when the user moves the mouse cursor and Uniface is not idle.

 Consider the following scenario:

 * the Detail trigger of a Command Button with Representaion Header contains the
 following Proc:

   Sleep 500

 * the user moves the mouse cursor so that it hovers over the Header button

 => the button is highlighted

 * the button is pressed
 * while Uniface is still "sleeping" the mouse is moved away from the button

 => once Uniface is idle again the button will remain highlighted

 The above described issue does not occur when the command button is not of type
 Header. The problem also does not occur in case the Detail trigger of the
 Header command button is activated by keyboard instead with a mouse click.


Solution:
 This problem is solved.

________________________________________
BUG 29308:  Tree needs a second click on expand after bug fix 25991


Description:
 A second click on an expand button is needed when the clicked node in the  tree
 is an incomplete node. This problem is comparable with the bug fix for 25991
 however not related. The problem can be reproduced in older Uniface versions as
 well.

 When the user clicks on the expand button of an incomplete node, the tree
 control sends a TVE_EXPAND message to the window procedure. At this point the
 extended trigger is called. Since there are no child nodes nothing happens in
 the tree. UNIFACE updates the tree valrep, however no expansion happens after
 this.


Solution:
 This problem is solved.

________________________________________
BUG 29311:  R114: if/elseif statement that is > 2KB causes crash


Description:
 After installing the version 9.4.01 patch R114 (or higher) if/elseif statements
 that are > 2KB cause a crash. It hereby does not matter how many conditions are
 used, but it's the total length of the Proc line that counts. The same
 if/elseif statements work without any problems with lower patch levels (for
 example 9.4.01 plus R113) or previous releases (for example Uniface 9.3.xx).

 Consider the following scenario:

 The following if statement is > 2KB (the fields v_04.dummy till v_104.dummy are
 not explicitly mentioned):

 if ( %\
 v_00.dummy != "" | v_01.dummy != "" | v_02.dummy != "" | v_03.dummy != "" | %\
 ; [...]
 v_105.dummy != "" | v_106.dummy != "" | v_107.dummy != "" %\
 )

 When this if statement is executed then a crash will occur.


Solution:
 This problem is solved.

________________________________________
BUG 29313:  R106: First field of Grid might be overlaid by window background color


Description:
 Under specific circumstances the first field of a Grid is overlaid by the
 Window Background Color and the field content is not visible anymore. This
 problem can be replicated in case

 1. The first field of the Grid is NED (non-editable),
 2. The background color is set in the Execute trigger by $windowproperties
 3. The Grid widget property Selectable is enabled

 On focus change (when leaving the field or just resizing the form), the field
 content becomes visible again.

 The above described problem can be replicated when using Uniface 9.3.02 + P215
 or version 9.4.01 + R106 (and higher). The issue cannot be reproduced when
 using a lower patch level (than the previous mentioned) or an older Uniface
 release. THe problem also does not occur when Selectable=off.


Workaround:
 Add a show statement in the Execute after $windowproperties has been set and
 before the edit statement.


Solution:
 This problem is solved.

________________________________________
BUG 29317:  V9: $ltrim might loop when using syntax code that matches 0-n characters


Description:
 Under specific circumstances Uniface 9 will go into an infinite loop when the
 Proc function $ltrim is executed. This is the case if the syntax code in the
 Pattern parameter is matching 0-n characters (for example '#*', which is
 matching 0-n digits) and the Source string only contains characters of the same
 type as specified in the syntax code.

 For example:

 vTarget = $ltrim("123", '#*')
 ; vTarget should have the value "" after executing the above statement
 ; But Uniface will loop indefinitely

 In case the function $rtrim is used in the above example then everything works
 as expected. For example:

 vTarget = $rtrim("123", '#*')
 ; vTarget has the value "" after executing the above statement

 And if the source string also includes other characters then specified in the
 syntax code then $ltrim also works correctly. For example:

 vTarget = $ltrim("123A", '#*')
 ; vTarget has the value "A" after executing the above statement

 This problem does not occur in earlier Uniface version, like for example
 version Uniface 8.4.06.


Solution:

 Bug has been fixed.

________________________________________
BUG 29319:  Selecting item from certain dropdownlist on DSP using Firefox fails since R115


Description:
 Selecting an item from certain dropdownlist on DSP using Firefox fails since
 R115.

 When the dropdownlist displays downwards selecting an item fails.
 When the dropdownlist displays upwards selecting an item does work.
 This problem does not occur using other browsers like IE8 or Chrome.


Solution:
 This problem is solved.

________________________________________
BUG 29321:  Unicode string parameter of OCX Event not correctly passed to Extended Trigger.


Description:
 In case an Event of an OCX control is passing an Unicode String parameter then
 the data is not correctly received (is garbled) in the Extended Trigger of the
 OCX Container Widget.


Workaround:
 There is no workaround for the garbled message.


Solution:
 This problem is solved.

________________________________________
BUG 29323:  udeploy utility does not generate log files using the /ual switch


Description:
 In Uniface 9.4.01 plus R108 the udeploy utility does not generate log files
 using the /ual switch. Before R108 this worked fine. Also in Uniface 8.4.06
 plus D612 this works fine. When deploying the uar file a read-only component
 should generate an error message in the ual log file as happens in Uniface
 8.4.06:

 7904 - Cannot write component file for component TEST84.


Solution:
 This problem is solved.

________________________________________
BUG 29324:  Print is sometimes truncated when Richeditbox contains bold characters


Description:
 When a text in the Rich Edit Box contains some bold text, under certain
 circumstances the next line(s) are not printed anymore.


Solution:
 This problem is solved.

________________________________________
BUG 29329:  OpenVMS: DLM's threading upsets system timer function, the sleep proc statement


Description:
 Before a license checkout with DLM has occurred, the sleep proc statement works
 reliably. But after such a checkout, the proc statement sleep now sleeps up to
 a second longer than it is supposed to. Also, sleeps shorter than one second
 may wake up prematurely.


Workaround:
 There is no workaround for this problem.


Solution:
 This problem is solved.

________________________________________
BUG 29354:  Sybase U4.1 , sql/print result can be wrong for selects above 255 bytes


Description:
 Sybase U4.1 , sql/print result can be wrong for selects above 255 bytes
 When in previous rows there has been a row where field F1 has a larger content
 the extra characters are added.

 An example:
 Table tabletest6 is defined as
 create table tabletest6
 (id int not null, text char(256) null,
 constraint tabletest5I1 primary key clustered (id))
 go

 There are 4 rows in the table
 1             1234567890
 2             abcdef
 3             qqq
 4             zz

 Uniface proccode:
 sql/print "select * from tabletest6","$DEF"

 id            text
 ========================
 1             1234567890
 2             abcdef7890
 3             qqqdef7890
 4             zzqdef7890
 (rows affected 4)

 where expected was
 id            text
 ========================
 1             1234567890
 2             abcdef
 3             qqq
 4             zz
 (rows affected 4)

 Using table tabletest5 defined as
 create table tabletest5(id int not null, text char(255) null,
 constraint tabletest5I1 primary key clustered (id))
 go

 the result for
 sql/print "select * from tabletest5","$DEF"
 is correct:
 id            text
 ========================
 1             1234567890
 2             abcdef
 3             qqq
 4             zz
 (rows affected 4)

 Another test that fails:
 select a.text+b.text from tabletest5 a, tabletest5 b where a.id = b.id
 12345678901234567890
 abcdefabcdef34567890
 qqqqqqabcdef34567890
 zzzzqqabcdef34567890


Solution:
 This problem is solved.

________________________________________
BUG 29357:  Unable to load uwso10 when MFC80.dll is not present in bin folder using U1.0


Description:
 In Uniface 9.4.01 using the SOP U1.0 driver a SOAP call out to a rpc encoded
 webservice fails with -81 procerror, the following message appears in the
 message frame:
 Unable to load uwso10; error 126 ('The specified module could not be found.')
 *** The DLL could not be loaded either in the USYSBIN directory or via the PATH
 variable.
 *** Check if its directory is in the correct place in the PATH variable.
 Current PATH shown below.

 The reason for this behaviour is that the MFC80.dll is not present in the bin
 folder of the Uniface installation:

 <Uniface 9.4 InstallDir>\common\bin


Workaround:
 Place the MFC80.dll in <Uniface 9.4 InstallDir>\common\bin


Solution:

 The problem is solved. SOAP U1.0 driver (uwso10.dll) has now been integrated
 with the correct manifest information so that MFC80 will be loaded properly.

________________________________________
BUG 29360:  DB2 driver does not return stored procedure out param in $result


Description:
 When you call a DB2 stored procedure with an out parameter with the "sql"
 command, the value of the out parameter is not propagated to $result. It only
 is when you use sql/print. While this is conform the documentation of the "sql"
 command, it used to work before bugfix 27894 in patch O302. And it contradicts
 the DB2 connector documentation which states that

    sql "call somesp(?)"

 shall pass the value of the out parameter to $result.


Solution:
 This problem is solved.

________________________________________
BUG 29369:  Struct comparison may return incorrect result


Description:
 A variable containing:-
 [element]
   [$tags]
     [xmlClass] = "element"
   [attr1] = "simple attr1"
     [$tags]
       [xmlClass] = "attribute"
   [attr2] = "simple attr2"
     [$tags]
       [xmlClass] = "attribute"
   [] = "Some chars"
   [] = "<start>cdate value</start>"
     [$tags]
       [xmlClass] = "CDATA"

 is equal to one containing
 [null] = ""


Solution:
 This problem is solved.

________________________________________
BUG 29375:  R114: Adding Fields to an Entity is not updating the Component SubTypes.


Description:
 R114: Adding Fields to an Entity is not updating the Component SubTypes.
 This problem occurs in Uniface 9.4 since patch R114.

 How to reproduce:
 Add a field in the entity supertype and check if the field is now also in the
 component subtypes for this entity.
 Since R114 this is not the case.


Workaround:
 Delete and recreate the component subtypes.


Solution:
 This problem is solved.

________________________________________
BUG 29379:  result $scan, $replace using syntax strings with #* not always correct


Description:
 result $scan, $replace using syntax strings with #* not always correct
 This problem occurs in all Uniface versions.
 In Uniface Nine result is better than in Uniface Eight but still same cases are
 not correct.

 ##* means 1 or more digits
 %##* means # followed by 0 or more digits
 %###* means # followed by 1 or more digits

 replacing:
 when * is used replace the longest successively part of the string matching the
 pattern.

 ##* ignores the first single digit
 ##* ignores the first 2 digit combination
 %##* ignores first # followed by single digit
 %###* takes first # followed by single digit as hit: but this is not a match
 %##* sometimes does not take the longest part:
 some string 8,12,#9,#13,#14,#14,9
 #13 should be replaced and not only #1

 Some examples:
 vSearchin="1,12,123,1234,12345,12345,1234,123,12,1"
 vSearchFor='##*'

 vResult = $replace(vSearchIn, 1, $syntax(vSearchFor), vReplaceWith, -1)
 Result          1,a,a,a,a,a,a,a,a,a
 Expected        a,a,a,a,a,a,a,a,a,a

 vResult = $replace(vSearchIn, 1, $syntax(vSearchFor), vReplaceWith, 1)
 Result          1,a,123,1234,12345,12345,1234,123,12,1
 Expected        a,12,123,1234,12345,12345,1234,123,12,1

 scan vSearchIn, $syntax(vSearchFor)
 Result          3
 Expected        1

 vSearchin="1,12,123,1234,12345,12345,1234,123,12,1"
 vSearchFor='###*'

 vResult = $replace(vSearchIn, 1, $syntax(vSearchFor), vReplaceWith, -1)
 Result          1,12,a,a,a,a,a,a,a,1
 Expected        1,a,a,a,a,a,a,a,a,1

 vResult = $replace(vSearchIn, 1, $syntax(vSearchFor), vReplaceWith, 1)
 Result          1,12,a,1234,12345,12345,1234,123,12,1
 Expected        1,a,123,1234,12345,12345,1234,123,12,1

 scan vSearchIn, $syntax(vSearchFor)
 Result          6
 Expected        3

 vSearchin="#1,#12,#123,#1234,#12345,12345,#1234"
 vSearchFor='%##*'

 vResult = $replace(vSearchIn, 1, $syntax(vSearchFor), vReplaceWith, -1)
 Result          #1,a,a,a,a,12345,a
 Expected        a,a,a,a,a,12345,a

 vResult = $replace(vSearchIn, 1, $syntax(vSearchFor), vReplaceWith, 1)
 Result          #1,a,#123,#1234,#12345,12345,#1234
 Expected        a,#12,#123,#1234,#12345,12345,#1234

 scan vSearchIn, $syntax(vSearchFor)
 Result          4
 Expected        1

 vSearchin="#1,#12,#123,#1234,#12345,12345,#1234"
 vSearchFor='%###*'

 vResult = $replace(vSearchIn, 1, $syntax(vSearchFor), vReplaceWith, -1)
 Result          a,#12,a,a,a,12345,a
 Expected        #1,a,a,a,a,12345,a

 vResult = $replace(vSearchIn, 1, $syntax(vSearchFor), vReplaceWith, 1)
 Result          a,#12,#123,#1234,#12345,12345,#1234
 Expected        #1,a,#123,#1234,#12345,12345,#1234

 scan vSearchIn, $syntax(vSearchFor)
 Result          1
 Expected        4

 vSearchin="some string 8,12,#9,#13,#14,#14,9"
 vSearchFor='%###*'

 vResult = $replace(vSearchIn, 1, $syntax(vSearchFor), vReplaceWith, -1)
 Result          some string 8,12,a,a3,a4,a4,9
 Expected        some string 8,12,a,a,a,a,9


Solution:

 The bug has been fixed.

________________________________________
BUG 29380:  Dynamic widgettype not listed in Global Updates forms


Description:
 In Uniface 9.5.01 the dynamic widgettype is not listed in the Global Updates -
 Fields form in the IDF, and also not in the form Define Field Property Updates.
 It should be possible to also perform global updates for the repository field
 Dynamic widget type.


Solution:

 This issue has been resolved and the online help updated.

________________________________________
BUG 29382:  MSS 4.0: Use ODBC connection pooling to improve reconnect time


Description:
 The MSS 4.0 connector should use ODBC connection pooling in order to improve
 the overall performance and reduce network traffic.


Solution:
 This problem is solved.

________________________________________
BUG 29383:  R116/P225: Percent sign is displayed as Ampersand in message


Description:
 Since the version 9.3.02 patch R116 and the version 9.3.02 patch P225 a Percent
 sign ("%") is shown as Ampersand ("&") in a message, the form or application
 title.

 Consider the following scenario:

    mesage/info "You get 10% Discount"

 When the above message statement is executed then the followingsi shown on
 screen:

    "You get 10& Discount"

 The problem does not occur when printing the previous mentioned message to the
 Message Frame (using putmess). Please note that this is (only) a display
 problem and Uniface will not store an Ampersand instead of a Percent sign when
 the latter is assigned as part of a string to a field or variable. This problem
 also has no effect on string substitution.

 Additionaly, a single Ampersand is duplicated in a message, the form or
 application title.

 Consider the following scenario:

    mesage/info "A & B"

 When the above message statement is executed then the followingsi shown on
 screen:

    "A && B"

 This issue also cannot be reproduced when using a lower patch level than R116
 (e.g. 9.4.01 + 115) or a previous release of Unfiace (e.g. Unfiace 9.3.02).


Solution:
 This problem is solved.

________________________________________
BUG 29384:  Crash when closing tab Layout of field properties on DSP component


Description:
 In Uniface 9.4.01 plus R117 define a field on a DSP component, open the widget
 properties of the field, choose the tab layout and click Cancel. Then the IDF
 crashes.


Solution:
 This problem is solved.

________________________________________
BUG 29385:  [self] does something on SOAP call out call back operartions


Description:
 Actual behavior:
 For SOAP call-out, call-back components can be specified in the assignment file
 with SOAP driver setting and in [SERVICES_EXEC] section. If the keyword [self]
 is used it actually refers to the activated SOAP component, but that component
 has a SOAP implementation and no 4GL implementation and therefore cannot
 implement any call-back operations. So using the keyword [self] in a SOAP
 call-out construction is pointless. It is not even documented and the is
 correct.

 Expected:
 [self] should not refer to anything and should simply not work or even generate
 a asn file error.

 Result:
 It refers to the activates SOAP component.


Solution:
 This problem is solved.

________________________________________
BUG 29389:  GRID - columnWidth property does not accept unqualified property names


Description:
 Scenario:
 1. Create a form with a grid (MYENT.MODEL) and at least 2 fields (FLD1, FLD2)
 2. Create following Proc in Detail of a button:
 putitem/id $entityproperties(MYENT.MODEL), "columnwidth",
 "FLD1=30px;FLD2.MYENT.MODEL=30px"
 3. Compile and run
 4. Push the button

 Expected:
 Both fields get a column width of 30px

 Result:
 Only FLD2 gets a column width of 30px because it is fully qualified.


Solution:
 This problem is solved.

________________________________________
BUG 29390:  WS: Call-out call-back component instance always deleted


Description:
 For SOAP call-out, the call-back component is always implicitly instantiated
 before activation of the SOAP_CALLOUT_PRE operation and implicitly deleted
 after activation of the SOAP_CALLOUT_POST operation. This should be conditional.
 If the callback component is not yet instantiated, it should be instantiated by
 the SOAP driver before the _PRE and deleted after _POST.
 If the callback component is already instantiated, it should (obviously) not be
 instantiated by the SOAP driver but also not deleted after activation of the
 _POST.


Workaround:
 There is no workaround for this problem.


Solution:
 This problem is solved.

________________________________________
BUG 29393:  Compilation: field used in global proc not in field list entity since r114.


Description:
 Compilation: field used in global proc not in field list entity since r114.

 This problem does not occur in earlier Uniface versions.
 This problem occurs in Uniface 9.4 since patch R114.

 How to reproduce:
 Paint an entity in form with field list on automatic.
 field MODIFY_ID is not painted
 A call to a global proc is done
 In the global proc:
 MODIFY_ID = "1234"

 Compile form using /frm /inf
 In R113 and earlier Uniface versions:
       info: 1134 - Subsetting of DOCKET_ENTRY_CASE_REL includes: CASE_ID,
 DOCKET_ID, U_VERSION, PARENT_CASE_ID, MODIFY_ID
       info: 1134 - Subsetting of DOCKET_ENTRY_CASE_REL excludes:
 CREATE_DATE_TIME, CREATE_ID, MODIFY_DATE_TIME

 Since patch R114:
       info: 1134 - Subsetting of DOCKET_ENTRY_CASE_REL includes: CASE_ID,
 DOCKET_ID, U_VERSION, PARENT_CASE_ID
       info: 1134 - Subsetting of DOCKET_ENTRY_CASE_REL excludes:
 CREATE_DATE_TIME, CREATE_ID, MODIFY_DATE_TIME, MODIFY_ID


Solution:
 This problem is solved.

________________________________________
BUG 29394:  DSP: javascript error after clear/e and return(-1) in the <PRSO> trigger


Description:
 DSP: javascript error after clear/e and return(-1) in the <PRSO> trigger
 This problem occurs in Uniface 9.5.
 This problem does not occur in Uniface 9.4.

 Create a DSP component with a button with
 following proc in the <detail>-trigger:
 public web
 clear/e "ENT1"
 return(0)
 end

 In the <PRSO> trigger (pre save occurrence) of entity ENT1
 return(-1)

 Pressing the button wil give javascript error:
 Message: 'realizedOcc' is null or not an object
 Line: 1048
 Char: 5
 Code: 0
 URI: http://localhost:8095/uniface/common/uluv.js

 proctracing:
 0 0(_detail) DTLF:3  clear/e "ENT1"
 0 0(_detail) DTLF:4  return (0)
 0 0(_setstate) STST:1  selectcase $webresponsetype
 0 0(_setstate) STST:2  case "UPDATE"
 0 0(_setstate) STST:3  websave
 0 0(_presaveoccurrence) PRSO:1  if (CH1.ENT1 = "")
 0 0(_presaveoccurrence) PRSO:2  return ( - 1)
 0 0(_setstate) STST:4  if ($procerror < 0)
 0 0(_setstate) STST:7  endif
 0 0(_setstate) STST:24  endselectcase
 0 0(_setstate) STST:25  return (0)

 Documented for the <PRSO> trigger:
 Uniface Reference > Triggers: Standard > Pre Save Occurrence
 Setting $status has no effect on subsequent trigger processing.


Solution:
 This problem is solved.

________________________________________
BUG 29396:  Errors in urouter log need absolute timestamp.


Description:
 The urouter logfile contains timestamps which contain an offset to the urouter
 starting time. When an error is logged, is if difficult to determine the precie
 moment it happened. In fact if urouter has been running for more than a day, it
 is impossible to determine the date when an error occurred, especially as by
 default ONLY errors are logged.


Solution:
 This problem is solved.

________________________________________
BUG 29404:  urouter may fail to send messages to a server


Description:
 When a message arrives at urouter for a server that did not yet manage to
 register at urouter, the message should be delivered as soon as this server
 registers. However this does not seem to happen: the message never arrives at
 the server after registration


Solution:
 This problem is solved.

________________________________________
BUG 29405:  CHUI lineframe not shown correctly in Uniface 9


Description:
 A CHUI lineframe in UF8 shows as a solid line, in UF9 as a dashed line.


Solution:
 This problem is solved.

________________________________________
BUG 29407:  WRD and USYSHTTP still vulnerable to Cross Site Scripting


Description:
 Screens generated by the WRD or USYSHTTP (notable the yellow error screen) are
 still open to cross site scripting exploits, because not all special HTML
 characters are being escaped in all places (most prominent the HTTP Request
 headers Referer and User-Agent displayed by the yellow error screen).


Solution:

 In this WRD (wrd.jar) this problem is solved.
 Steps to take:
 1. Stop the HTTP server.
 2. Remove the exisiting wrd*.jar from the HTTP server environment.
 3. Copy the new wrd.jar to that location.
 4. Restart the HTTP server again.

 In WRD version 4.5 (wrd.jar) this problem is solved.
 Steps to take:
 1. Stop the HTTP server.
 2. Remove the exisiting wrd*.jar from the HTTP server environment.
 3. Copy the new wrd.jar to that location.
 4. Restart the HTTP server again.

________________________________________
BUG 29414:  RIA Tab2 sample does not work correctly on Firefox and Chrome.


Description:
 RIA Tab2 sample does not work correctly on Firefox and Chrome.

 Scenario:
 2. Start the RiaTab2 sample (from uniface\samples directory).
 2. Go to the second tab.
 3. Type something in the "Goals" field.
 4. Click the "refresh" button (the little icon of two curved arrows).
 5. Click the "new" button (the little icon showing an empty sheet of paper).

 Result:
 - The contents of all three tabs, are shown below each other.
 - The tabs themselves have lost their background colors.

 Notes:
 - The issues reproduces (at least) using Firefox 6.02 or 9.01,
   and Chrome 14.0 or 16.0.
 - This does not reproduce using Internet Explorer (tested versions 7 and 8).
 - This does not reproduce using Uniface 9.4.


Solution:
 This problem is solved.

________________________________________
BUG 29416:  Uniface Nine: automaximize does not work for non modal forms


Description:
 Uniface Nine: automaximize does not work for non modal forms
 In Uniface Eight this problem does not occur.

 How to reproduce:
 In ini file use
 [upi]
 automaximize=On
 [layout]
 history=On

 Start an instance of a non modal form:
 newinstance FNAME.EDUMM , INAME.EDUMM
 activate "%%INAME.EDUMM%%%"."%%OP.EDUMM%%%"()

 maximize the non modal form
 close the non modal form
 restart the non modal form
 newinstance FNAME.EDUMM , INAME.EDUMM
 activate "%%INAME.EDUMM%%%"."%%OP.EDUMM%%%"()

 The non modal form should be maximized but is not maximized.


Solution:
 This problem is solved.

________________________________________
BUG 29418:  Ampersand not displayed in Tool Tip Text


Description:
 Ampersand not displayed in Tool Tip Text


Workaround:
 Specify 2 Ampersands


Solution:
 This problem is solved.

________________________________________
BUG 29420:  GUI: Flickering hoverview


Description:
 Steps to Reproduce:
 1. Create a from with a multi line EditBox
 2. Set the Hover View property to true
 3. Fill the EditBox with that much lines of text that the following situation
 occurs when you hover over the field with the mouse:
 - The tooltip becomes that big that it does not fit beneath the current mouse
 position
 - Because of this it moves itself to a location above the current mouse position
 - But it does not fit there as well and I guess it will move itself down again
 - Where it does not fit and it will move itself back up again
 - etc.

 Result:
 A flickering tooltip.

 Expected:
 The tooltip should position itself somewhere in the middle where it does fit.
 But then still it is possible to have a tooltip that is that big that it does
 not fit the screen, so it should have a maximum size and then include a scroll
 bar or some indicator that its context is clipped.


Solution:

 Bug fix only

________________________________________
BUG 29424:  DB2 U3.0 driver does not allow the MAN syntax attr to be overridden on numerics.


Description:
 A DB2 numeric field is mandatory in the model, so it has NOT NULL in the
 database.
 Then on a component, the syntax is overridden so that it is not mandatory and
 you can actually leave it empty. Then when you store, the DB2 drivers tries to
 store spaces instead of NULL in the field, producing a CAST error. Because it
 does not store NULL, the DB2 connector option NULLDEFAULT does not work.
 The MySQL driver has the same problem, all other drivers handle this correctly.


Solution:
 This problem is solved.

________________________________________
BUG 29425:  Javascript API createOccurrence fails in DSP


Description:
 In the ACME sample when changing the following code in the DSP ACME TABS:

 public web
         $collhandle("NAVIGATION")->Add("obj-customer.gif", "Customers")
         $collhandle("NAVIGATION")->Add("obj-orders.gif", "Orders")
         $collhandle("NAVIGATION")->Add("obj-stock.gif", "Stock")
 End

 into

 public web
    webactivate $instancename.addtab("Customers")
    webactivate $instancename.addtab("Orders")
    webactivate $instancename.addtab("Stock")
 end

 (where in the operation addtab the Javascript API createOccurrence is called)
 the following error occurs in the browser:

 WEBSETOCC Failed

 ERROR=-1133
 MNEM=
 DESCRIPTION=Occurrence could not be found
 DSP_INSTANCE=ACMETABS
 COMPONENT=ACMETABS
 PROCNAME=GTST
 TRIGGER=GTST
 LINE=22
 Additional:


Solution:
 This problem is solved.

________________________________________
BUG 29426:  R119: Crash when combo box has a valrep of exactly 150 characters


Description:
 When using the Uniface 9.4.01 patch R119 then a crash occurs when a combo box
 has a valrep with exactly 150 characters and a combo box value is selected in
 runtime. In case the valrep is either smaller or larger than 150 characters
 then the problem does not occur.


Solution:
 This problem is solved.

________________________________________
BUG 29428:  Crash accessing $dberrortext after receiving an 862 byte Sybase database error


Description:
 Uniface may crash when receiving a database error longer than 256 bytes and
 displaying this database error using $dberrortext.


Workaround:
 No workarond


Solution:

 The maximum length of $dberrortext has been increased to 1023 bytes.
 If Uniface receives a database error longer than 1023 bytes, it will be
 truncated and no crash will occur.

________________________________________
BUG 29429:  Messages about labels in the transcript log file are missing


Description:
 In Uniface 9.4.01 on a form paint five labels have been painted. These labels
 have been painted too small to display the complete label texts. This leads to
 messages in the Uniface transcript log file:

 Labeltext[a] is [3] pixels too big. Form [DEBUGRECT_SHOW.UNIFACE Nine
 Development Environment]
 Labeltext[d] is [2] pixels too big. Form [DEBUGRECT_SHOW.UNIFACE Nine
 Development Environment]

 However, only two messages have been listed though five labels have been
 painted on the form paint, so one would expect five messages.

 The messages are enabled by specifying the following in the usys.ini file:

 .L=ulabel(transparency=on;labelfont=label;debugrect=on)

 and in the idf.asn:

 $transcript_logfile trans.log


Solution:
 This problem is solved.

________________________________________
BUG 29435:  Crash in "clear" after reconnecting to another network path


Description:
 When you dynamically reconnect a logical path ($PS4/NET) to different network
 paths, by repeatedly closing the path and re-opening it with different logon
 info, crashes and hangs can occur. Most common is a crah in the clear
 instruction, just after reopening the path.


Workaround:
 A workaround could be to clear the entities before closing the network path and
 reopening it.


Solution:
 This problem is solved.

________________________________________
BUG 29437:  As from R117, a [user_3gl] lib on UNIX fails to load


Description:
 As from R117, a [user_3gl] lib on UNIX fails to load if there is white space
 after the library name, when /preload or a module list is specified, e.g:

         [USER_3GL]
         lib3gl.so /preload

 This worked before R117.
 As from R117, it says 'Unable to load ../../..libmy3gl.so'
 Without the space, it works correctly.

 This is a side effect of bugfix 29286:
 [USER_3GL] dll cannot be loaded if path contains parentheses.


Solution:
 This problem is solved.

________________________________________
BUG 29442:  MSS: lookup can be slow because sql select count(*) from table is not used


Description:
 MSS: lookup can be slow because sql select count(*) from table is not used
 This behavior occurs in all Uniface versions.

 An example:
 create table [entm1]
 (
  [p2] char(20) not null,
  [p1] char(40) not null,
  [g1] char(20) null,
  [goms] char(200) null,

  constraint [entm1_pk] primary key
   ([p2],[p1])
 )

 Fill the table with records.

 sql done for a lookup:
 select [p2],[p1]
 from [entm1]
 where (([p2] like ? and [p1] like ?))

 Same test with Oracle:
 SELECT COUNT(*) FROM "ENTM1" WHERE (("P2" LIKE :"WPH1" ESCAPE '\') AND ("P1"
 LIKE :"WPH2" ESCAPE '\'))

 A select count(*) should be used to improve the performance
 and to be consistent with other databases like Oracle.
 MSS uses for the lookup in the select part the primary key fields.
 The select p1,p2,.. from table is a bad choice in case of a lookup.


Solution:
 This problem is solved.

________________________________________
BUG 29443:  Mobile DB2 Everyplace: DBE(1.0) gives HCY00 error when retrieveing data


Description:
 In the message frame or logfile, the message
   Unknown DB2 Error: SQLresult = 0, SQLState = HCY00
 is written when retrieving data.


Workaround:
 Set the Hold statement option on in the assignment file:
   USYS$DBE_PARAMS hs : on
 This option is meant for DB2 on PC's and Unix, it does nothing on Mobile.


Solution:
 This problem is solved.

________________________________________
BUG 29444:  With $valrep the content of the combobox cannot be updated


Description:
 In Uniface 9.4.01 the contents of the combobox cannot be updated using the
 function $valrep. With $fieldvalrep the problem does not occur. Also the
 problem does not occur with a listbox or dropdownlist. Code example:

 $valrep(fieldname.entityname) = "17;27;37;4"


Solution:
 This problem is solved.

________________________________________
BUG 29445:  Upopmail stripping underscore characters from plain text messages


Description:
 Upopmail stripping underscore characters from plain text messages
 This problem occurs since Uniface version 9.3.01.

 An Example :
 message with text  A_b_c will be shown as A b c

 Another example:
 Message using
 Content-Type: text/plain;
 charset="utf-8"

 with as text xml using underscores:
 The underscores are removed retrieving the message with GETMAIL or GETMAILX:

 attloc.receive=$$G5
 mesg_nr.receive=mid
 size.receive=0
 $status = -16
 while ($status = -16)
   activate
 "UPOPMAIL".getmailx(mesg_nr.receive,ATTLOC.RECEIVE,SIZE.RECEIVE,HEADER_LIST,chun
 k_text,ATT_LIST)
   if (MAIL_TEXT)
     MAIL_TEXT = "%%MAIL_TEXT%%chunk_text"
   else
     MAIL_TEXT = chunk_text
   endif
 endwhile

 underscores are replaced by spaces in MAIL_TEXT.


Solution:

 The problem had been observed when the mail text was encoded by
 'quoted-printable' format. If you have a mail in plain text or other format
 such as Base64, you don't get this issue.
 Uniface had improperly decoded a underscore character '_' to a space ' '. This
 problem has been solved now.

________________________________________
BUG 29449:  Problems in Uniface Nine using panel, secondary form and buttonstyle is 1 or 3


Description:
 Problems in Uniface Nine using panel, secondary form and buttonstyle is 1 or
 These problems do not occur using normal non-modal forms.
 These problems do not occur using command buttons instead of panel buttons.

 An example:
 Non-modal form XXPANEL has field F1 to enter characters and a command button to
 activate the non-modal secondary form XXPANEL2.
 The non-modal secondary form XXPANEL2 has a panel P1 with a QUIT button and a
 field F2 to enter characters.

 Steps to reproduce too many <QUIT>-triggers fired
 =================================================
 - Activate non-modal form XXPANEL
 - Use the command button to activate the non-modal secondary form XXPANEL2.
 - Click with the mouse in field F2 from XXPANEL2 and enter a character.
 - Click with the mouse on the panel P1 button to quit XXPANEL2:
         The <QUIT>-trigger from XXPANEL2 is fired.
         The <QUIT>-trigger from XXPANEL is not fired.
         This is the correct behavior.
 - Use the command button to activate XXPANEL2 again.
 - Click with the mouse in field F1 from XXPANEL and enter a character.
 - Click with the mouse on the panel P1 button to quit XXPANEL2.
         The <QUIT>-trigger from XXPANEL2 is fired.
         The <QUIT>-trigger from XXPANEL is fired.
         This is wrong behavior:
         Only the <QUIT>-trigger from XXPANEL2 should be fired.


Workaround:
 buttonstyle=2


Solution:
 This problem is solved.

________________________________________
BUG 29451:  Background image should not be displayed in message frame , keyboard help,...


Description:
 Background image should not be displayed in message frame , keyboard help,...

 Define a background image in the ini:
 [application]
 logotime=off
 window=uwindow(backimage=@.\gears.jpg)

 When the defined background image is displayed scrolling will cause corruption
 of the displayed text.
 Using an editbox the same occurs when there is a background image.
 This is Windows behavior. In this case however display can be corrected by
 clicking in the editbox: The display will be correct again.


Solution:
 This problem is solved.

________________________________________
BUG 29455:  UF95: Compiler compatibility problems with parenthesis


Description:
 In case a string or assignment includes parenthesis then this can cause under
 specific circumstances compile errors when using Uniface 9.5.01. The same Proc
 compiled without any errors in previous Uniface versions (for example 9.4.01).

 Here are some examples and the corresponding compile errors:

 * test case 1:

   FLD1_BTR.TBL/init=FLD2.TBL*(FLD1.TBL/100)

 > Compiler Output:

   ;(LP_FLD1)      3-1             FLD1_BTR.TBL/init=FLD2.TBL*(FLD1.TBL/100)
   ;(LP_FLD1)    error:   1000 - Syntax error (Statement not valid)

 * test case 2:

   $$TXT1 = "This is.= %%$number(FLD2.TBL), For.= %%$number(FLD2.TBL) (Sum=
 %%FLD3.TBL-%%LFD_FLD3.TBL, Count= %%FLD4.TBL - %%FLD5.TBL) ... <%%$clock>"

 > Compiler Output:

   (LP_PROTO)     35-2                  $$TXT1     = "This is.=
 %%$number(FLD2.TBL), For.= %%$number(FLD2.TBL) (Sum= %%FLD3.TBL-%%LFD_FLD3.TBL,
 Count= %%FLD4.TBL - %%FLD5.TBL) ... <%%$clock>"
   (LP_PROTO)    error:   1000 - Syntax error (Parentheses unbalanced or not
 allowed)

 * test case 3.a:

   AMOUNT.TAB=(A_TEXT.TAB!="")

 > Compiler Output:

   (2\WRIT)      1          AMOUNT.TAB=(A_TEXT.TAB!="")
   (2\WRIT)    error:   1000 - Syntax error (Operand not valid as destination)

 * test case 3.b:

   MESSAGE.TAB=(M_TEXT.TAB!=""&M_TEXT.TAB!="-")

 > Compiler Output:

   (2\WRIT)      2          MESSAGE.TAB=(M_TEXT.TAB!=""&M_TEXT.TAB!="-")
   (2\WRIT)    error:   1000 - Syntax error (Operand not valid as destination)

 * test case 3.c:

   FLD6.TAB3=($status>0)

   (LP_ATTR_TAB3)      6           FLD6.TAB3=($status>0)
   (LP_ATTR_TAB3)    error:   1000 - Syntax error (Operand not valid as
 destination)


Solution:
 This problem is solved.

________________________________________
BUG 29456:  UF95: Compiler compatibility problems with left curly bracket


Description:
 In case a sting includes a left curly bracket then this can cause under
 specific circumstances compile errors when using Uniface 9.5.01. The same Proc
 compiled without any errors in previous Uniface versions (for example 9.4.01).

 Here is an example and the corresponding compile error:

   $2="%%$2{."

 > Compiler Output:

   (LP_FORMPIC)     29-3            $2="%%$2{.%%^"
   (LP_FORMPIC)    error:   1000 - Syntax error (Numeric not valid)


Workaround:
 To work around this problem precede the curly brace with %%% to mark the end of
 the substitution.
 The cause of the problem is related to the introduction of the Struct data type.
 With the introduction of the Struct data type two new operators were also
 introducted: "->" and "{}".  The Proc compiler erroneously accepted these
 operators inside string subsitution.  Thus, the compiler falsely interpreted
 the opening curly brace, or the "->" as a Struct operator.


Solution:
 This problem is solved.

 The compiler no longer interprets an opening brace or a "->" sign inside
 string substition, as a Struct operator.
 If you do want to use such an operator (or any other operator) in String
 substitution, you can do this by enclosing the whole expression in parentheses.
 For example:
 putmess "Struct member is %%(myStruct->member)"
 putmess "The result of 1+2 is %%(1+2)"

________________________________________
BUG 29457:  RTL: Position of fields in certain occ's of multi-occ entity on tab page shifted


Description:
 In a RTL application the fields in certain occurrences of a multi-occurrence
 entity on a tab page under specific circumstances are shifted. This problem
 occurs only when using Uniface version 9.2.03 plus patch O301 (and higher),
 version 9.3.01 plus patch P102 (and higher), or with version 9.4.01 (and
 higher).

 When a tab page contains a multi-occurrence entity with for example 10
 repetitions then the fields of a newly added occurrence (if it's the 2nd occ or
 greater) are shifted either to the right or left (depending on the form
 layout). The fields of the occurrences that are retrieved are however displayed
 correctly. For example 5 occurrences are read from the database and a 6th is
 added then the fields of the first 5 occurrences are positioned correctly, but
 the fields of the occurence number 6 (and any subsequent added occ) is shifted.


Solution:
 This problem is solved.

________________________________________
BUG 29460:  Using profile=174 since patch P215 strange idf behavior in certain test.


Description:
 Using profile=174 since patch P215 strange idf behavior in certain test.
 This problem occurs in Uniface 9.3.02 since patch P215.
 This problem does not occur in Uniface 9.4 in a single byte environment.
 With the standard profile=183 this problem does not occur.

 In a multi byte environment like Japanese environment this problem occurs in
 all Uniface versions.

 How to reproduce:
 Open in idf a form with proccode
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;
 .;.;.;.;.;.;.;"
 $1=".;.;.;|.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.
 ;.;.;.;.;.;.;"

 Replace in the last line | by <gold>| and store:
 cursor jumps to the first position and only | is stored: not <gold>|


Workaround:
 Use the standard
 profile=183


Solution:
 This problem is solved.

________________________________________
BUG 29461:  R101: Single grid becomes invisible after printing


Description:
 From R101 onwards in Uniface 9.4.01 a single grid becomes invisible after
 printing the form component. When an extra dummy field is painted above the
 grid the problem does not occur.


Solution:
 This problem is solved.

________________________________________
BUG 29462:  Optimalisation not added to dropdownwidget


Description:
 Optimalisation not added to dropdownwidget

 In Uniface Nine optimalisation has been added for widgets to improve
 performance.
 For the dropdownlist this optimalisation has not been done.
 It must also be done for the dropdownlist to improve performance.


Solution:
 This problem is solved.

________________________________________
BUG 29463:  /maxidle value in UST is not fully case insensitive


Description:
 While keywords in an UST definition are case insensive, values for /maxidle are
 not. For example, if you specify /MAXIDLE=10M, the 'M' is ignored and the
 userver idles out after 10 seconds. There is nothing in the urouter log
 attesting to this.


Solution:
 This problem is solved.

________________________________________
BUG 29471:  V9: $MENU_BAR ,,,,TRIG can completely disable an application.


Description:
 Starting with Uniface version 9.1.01, the assignment setting $MENU_BAR ,,,,TRIG
 can completely disable an application.

 Consider the following scenario:

 A dropdown menu is opened but no menu item is selected and:

 - The assignment setting $MENU_BAR ,,,,TRIG is present in the assignment file.
 - A menu bar is defined in the start-up shell properties
 - The Pulldown trigger contains the statement pulldown
 - There is no menu bar defined in the form properties.

 When the user tries to make the current form active again then this does not
 work - the form and the rest of the application are disabled now.

 The described issue does not occur when the user clicks on a menu item.


Solution:

 The bug has been fixed.

________________________________________
BUG 29473:  Double byte katakana are retrieved incorrectly


Description:
 On Uniface 9.4.01 using a DB2 database on AS400 double byte katakana characters
 are retrieved incorrectly.


Workaround:
 The problem was introduced in R116, so applying an earlier patch (on the client
 side) will also solve the problem, but then you get bug 29223 back.


Solution:
 This problem is solved.

________________________________________
BUG 29474:  Timestamp not updated for repository fields like triggers in entities


Description:
 In Uniface 9.4.01 the timestamp fields of some fields in the repository are not
 updated.
 For instance, when the trigger of a model entity is changed and saved, the
 timestamp has not been updated as can be seen with:

 select utimestamp from ucgroup where U_GLAB='TEST532021'

 This is not in line with the doucmentation (Uniface library, paragraph
 Modified).


Solution:
 This problem is solved.

________________________________________
BUG 29475:  -25 error is returned during webgen of an invalid image on an USP


Description:
 In Uniface 9.4.01 an invalid picture is loaded during a webgen in a picture
 field on a Uniface Server Page, and the middleware returns a -25 error to the
 browser. This happens if an image in a field is not one of the recognised
 Uniface image formats, i.e. the first character was not ^@#& results in the
 underlying userver process crashing. Whilst we would expect an error to be
 returned we would not expect the userver process to terminate.
 The following output can be found within Event Viewer:

 Faulting application userver.exe, version 9.4.1.114, time stamp 0x4dfeec52,
 faulting module yrtl.dll, version 9.4.1.114, time stamp 0x4dfeff2d, exception
 code 0xc0000005, fault offset 0x00133c07, process id 0x1324, application start
 time 0x01cc6d562b111bda.


Workaround:
 The problem is not that it is invalid, but it is bigger than 255 bytes; if it
 is smaller, then no crash occurs.


Solution:
 This problem is solved.

________________________________________
BUG 29476:  XmlToStruct strips leading/trailing spaces from comments when using /full option


Description:
 XmlToStruct - When using /full (without /validate) leading and trailing
 spaces are stripped from comments.
 For example - using the above flags - converting:

 <!-- comment -->

 results in:

 [] = "comment"

 The result should be:

 [] = " comment "


Solution:
 This problem is solved.

________________________________________
BUG 29479:  V95: Compiler interprets '->' incorrectly when doing string substitution


Description:
 In case a string includes the character combination '->' then this under
 specific circumstances is incorrectly interpreted by the compiler of Uniface
 9.5.01 as a struct dereference operator when using. The same Proc compiles
 without any errors in previous Uniface versions (for example 9.4.01).

 Here is an example and the corresponding compile error:

 $nValue$ = 1
 $sText$ = "One"
 putmess ("%%$nValue$->'%%$sText$'")

 > Compiler Output:

 (EXEC)      3         putmess ("%%$nValue$->'%%$sText$'")
 (EXEC)    error:   1000 - Syntax error (Struct member name missing)


Workaround:
 To work around this problem precede the '->' with %%% to mark the end of the
 substitution.


Solution:
 This issue has been resolved (see AST 29456)

 This issue has been resolved.  See AST 29456.

________________________________________
BUG 29481:  Implement HMAC SHA-224/256/384/512 option for encode


Description:
 As a value added reseller, some of my target customers have security
 requirements that are higher than is currently available in Uniface. If needed,
 I wish to be able to use the $encode with HMAC SHA-224/256/384/512.


Solution:

 As of patch E101 for Uniface 9.5.01, $encode and $decode support additional
 Hash Message Authentication Codes (HMAC): HMAC_SHA224, HMAC_SHA256,
 HMAC_SHA384, and HMAC_SHA512. For more information on using HMAC codes, see
 $encode in the Uniface Library.

________________________________________
BUG 29482:  Struct: request to add $dbgstringplain which does not show the tags


Description:
 The $dbgstring Struct function shows the Structs including their tags.  There
 is a need for a similar function that omits the tags, and to use that for the
 4GL debugger.

 By not showing the tags the resulting debug-string is reduced in size.  This
 reduction is significant, especially for Structs that result from conversion
 from XML or from component.


Solution:
 A new Struct function, $dbgstringplain, was introduced.
 Its functionality is the same as that of $dbgstring, only $dbgstringplain does
 not show the Struct tags.
 Also, the 4GL debugger now uses the $dbgstringplain functionality to show
 the contents of Structs.

 A new Struct function, $dbgstringplain, has been introduced.
 Its functionality is the same as that of $dbgstring, but $dbgstringplain does
 not show the Struct tags.
 Also, the Uniface Debugger now uses the $dbgstringplain functionality to show
 the contents of Structs.
 For more information on these functions, see the Uniface Library.

________________________________________
BUG 29483:  Struct: request to add a function that returns scalar members of struct


Description:
 It is possible to get all struct members (Struct->*), or all members with a
 specific name (Struct->somename) but it is not possible to get the subset of
 all scalar members: Struct->$scalar.


Solution:
 The $scalar Struct function is now available.

 The $scalar Struct function is now available. It returns a collection of all
 scalar Members of a Struct. For more information, see $struct in the Uniface
 Library.

________________________________________
BUG 29489:  Extraction incompatibility 95


Description:
 In uniface 9.5.01 it is possible to use extraction on extraction results, eg:

   $1 = "Amsterdam"
   $1 = $1[7][2]

 The first extraction returns "dam"
 the second extraction returns "am"

 This is fine, but during string interpreation this also works:

   $1 = "Amsterdam"
   putmess "%%$1[7][2]"

 The result in pre-9.5 was that this was printed to the message frame: dam[2]
 while 9.5.01 will print: am

 Workaround:
   add the 3 %-symbols in 9.5 to mark the end of
   the variable to be interpreted:  putmess "%%$1[7]%%%[2]"


Solution:
 The 9.4 behavior with regard to string extraction inside string substitution
 has been restored.

 The 9.4 behavior with regard to string extraction inside string substitution
 has been restored.

________________________________________
BUG 29492:  Switch needed to generate BOM (Byte-Order-Mark) or not to generate a BOM


Description:
 A switch is needed to generate BOM or not to generate a BOM

 Uniface did not generate a BOM (Byte-Order-Mark) when using
 $sys_charset=UTF8. This was corrected via bug 27499.

 The BOM is not always needed/wanted:
 - The generated files may be incompatible with other applications (especially
 in the Unix world where a BOM is not expected.).
 - Although The BOM is permitted in UTF-8 by the Unicode standard, it is not
 required (for compatibility issues).


Solution:

 A new assignment switch has been added:
 $NO_BOM_UTF8 = true | false

 $NO_BOM_UTF8 determines whether Uniface writes a Unicode Byte-Order-Mark (BOM)
 when the UTF-8 format is specified in $SYS_CHARSET or with the filedump or
 lfiledump Proc instructions.

________________________________________
BUG 29493:  UF9: Problems when copying data from a Unifield to Clipboard


Description:
 When copying non-ascii data with Uniface 9 from a Unifield to the Clipbioard
 then this does not work correctly. Pasting the data to a field of a Uniface
 application is working correctly. But when the data is pasted to a Non-Uniface
 program (like for example Microsoft Office) then (depending on the copied data)
 either not everything or no data is inserted. Under specific circumstances the
 paste action can even cause a Non-Uniface program to loop.

 The above described problems can be replicated with any Uniface 9 release. And
 it does not occur with earlier versions like for example Uniface 8.4.


Solution:
 This problem is solved.

________________________________________
BUG 29494:  Tracing can cause a crash at application exit


Description:
 When tracing is specified but no tracing information is written because of the
 catagory selection, then at the end of the application a crash can occur. An
 attempt to write the final line is made:-
  1 01  1:39.750.72 t=4264: Filename=client.trc Tracing=on Info=cat,lvl,dtt
 Type=cached Frame=0 Levels=9v
 Because the file has never been opened, an attempt to open the file is made. By
 this time the assign struct has been freed and a dereferencing of the zero
 pointer causes a crash in uTextFileOpen


Solution:
 This problem is solved.

________________________________________
BUG 29496:  Override the wsdl location in a soap signature in the assignment file


Description:
 Currently the only way to specify the location of a WSDL file is in the soap
 signature created by a WSDL import, or by manually editing the signature. A
 better deployment option is to specify it on the assignment file.


Solution:

 A new SOAP connector option has been added so that you can specify the location
 of a WSDL file in the assignment file. This location overrides the location
 recorded in the SOAP signature (whether created by WSDL import or edited
 manually).

 wsdl = URL | File

 For example:
 [DRIVER_SETTINGS]
 ; Specify a local location
 usys$sop_params=wsdl=D:\u9\uniface\wsdl\soapdlw.wsdl

 [SERVICES_EXEC]
 ; Specify a URL for a specific web service called soapservice;
 ; this overrides the location specified under [DRIVER_SETTINGS].
 soapservice=$sop:soapservice wsdl=http://host/uniface/services/soapdlw.wsdl

________________________________________
BUG 29497:  u_where fails to retrieve data using certain profile character on AS/400


Description:
 With Uniface 9.4.01 on Japanese Windows XP it is not possible to retrieve data
 from a DB2 database on AS400 via urouter using the u_where clause with certain
 double byte profile characters. The problem does not occur when using the where
 statement. It may be related to bug 29233.


Workaround:
 The problem occurs only with double byte characters that have a %, _ or \ as
 their second byte.


Solution:
 This problem is solved.

________________________________________
BUG 29500:  Uniface Flow: Duplicate key error on UWTIA at save in Process Console


Description:
 On a save action in the process console the assignment rules for User Driven
 tasks are recalculated. When one or more packages are in state OnHold or
 Complete Running Instances at this moment, this may lead to a duplicate key
 error on the UWTIA table. The DB updates of the task assignments are rolled
 back then (not any other DB updates that may have been done in the Process
 Console - they are already commited at this point.)


Solution:

 This was a problem in the routine that calculates the assignments for User
 Driven tasks. It has been fixed now.

 NB: this bug had the same symptoms as b29266 (fixed in the same patch) but has
 a different cause.

________________________________________
BUG 29501:  Startup banner causes delay on some Solaris systems


Description:
 On some Solaris systems, generating the Startup banner in the message frame can
 cause a 3-second delay, as well as duplicate processes being displayed during
 that time.


Solution:
 This problem is solved.

________________________________________
BUG 29509:  $expression cannot cope with conversion functions in item values


Description:
 Suppose we have an expression that needs to be evaluated at runtime using
 $expression. The expression is 'var + 1', the value to use for var is specified
 in an item list, and is specified using a conversion function (which in this
 sample has no added value):

   val = $expression("var + 1", "var=$number(123)")

 While this is expected to return 124, in uniface 9401+R120 this returns an
 empty value.

 NB: it does not help to use proccompile first; also the following fails in R120:

   proccompile/expression "var + 1", "Items=var"
   val = $expression($result, "var=$number(123)")


Solution:
 This problem is solved.

________________________________________
BUG 29511:  Boilerplate field can be cleared in Hebrew Windows


Description:
 In Uniface 9.4.01 on Hebrew Windows a boilerplate field with NED, NPR can be
 cleared using ^REM_FIELD. The following message is given in the messageline:

 0104 - Field is display only.

 Clearing with CTRL-G does not clear the field. On English Windows the problem
 also does not occur.


Solution:
 Bug has been fixed

________________________________________
BUG 29515:  Crash in CHUI when checkbox adjacent to editbox using Decoration=no


Description:
 In CHUI, when a checkbox is painted immediately left to an editbox, and the
 checkbox has Decoration=No in the widget mapping, Uniface crashes when you
 start typing in the editbox. This happens as of 9.4.01 R107 and 9.5.01.


Workaround:
 The problem occurs when another widget is painted at the position where the [
 or the ] of the decoration would otherwise have been placed. A workaround is
 therefore to place that widget one cell further away from the checkbox. Or,
 leave decoration on.


Solution:
 This problem is solved.

________________________________________
BUG 29517:  Tracing no longer supports WinDebug


Description:
 You should be able to write tracing to the visual studio output window. This no
 longer works


Solution:
 This problem is solved.

________________________________________
BUG 29518:  Setting $windowproperties of overlay form may cause complete desktop refresh


Description:
 When $windowproperties of an overlay or tab form is set before the form window
 is instantiated (by a show or edit statement), this will cause a complete
 refresh of the Windows desktop. This causes unwanted screen flickering.

 The above described problem occurs since the version 9.4.01 patch R120 (and
 higher) or the version 9.5.01 patch E101.


Workaround:
 Add a show statement before $windowproperties is set.


Solution:
 This problem is solved.

________________________________________
BUG 29526:  $windowproperties can cause rapid screen flickering


Description:
 Under certain circumstances a uniface form rapidly flickers as the form is
 painted.


Solution:
 This problem is solved.

This page has no comments.