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 Wi