The following sections list some important information about some of the components and features.
For the latest product information, please refer to Instantiations Smalltalk web page.
Defects fixed in Version 7.0.0
***** versioning/releasing owned parts in Organizer causes a walkback
***** Messages missing in AbtDirectoryPrompter
Defects fixed in Version 7.0.1
2493 Swapper mutation of AbtTimestamp fails
3834 Broken link to ResHacker in Smalltalk User’s Guide
3885 AbtTimedWait is not threaded on Windows
4702 AbtTimestamp wrong for dates earlier that 1901-01-01
6168 User's Guide "Replacing required map" and "Exporting Components" missing punctuation
6204 Heterogeneous Details View Colummn
6622 Missing documentation for 64-bit integer support
6851 Intermittent slowdown under heavy load on Unix
7156 solaris includes extra .so files
7400 Database Guide is incorrect for Multi Row Query Example
7769 AbtPortableNotebookPageView broken for some users by V6.0.3
8225 IndexOutOfRange in WkTableWidget due to item deletion
8226 WkHierarchical listbox icons have gray background
8343 Sorting makes TableWidget items out of synch
9392 Scaling a transparent GIF causes it to lose transparency
14316 AbtComboBox gives walkback when maxlength is set on Unix
14317 AbtMQqm>>#terminate - dictionary concurrency problem - not thread-safe
14608 Embedded Shell menubar item translateCoords wrong
14609 Integer>>#even method has poor performance
14610 HY024 returned on multi-row ODBC operations with DB2
14611 Block>>#critical should be categorized as API
14612 FromDLL test in CgIconTests fails on Windows
14613 Multiple examples fail due to bitmapPath being an array
14615 Integer>>#bitAt:put: wrong
14616 SciSocketManager>>#getHostName passes bad parameter
14617 Error in implementation of AcoResourceManager active setting
14618 UNIXProcesses class>>#setUpApplication has redundant toBeLoadedCode
14619 Invalid characters in SCI trace filename
14620 Support more than 2GB RAM on Windows
14621 Inspector has focus on 'Bind to self' checkbox, not items in the list
14622 Improve SCI trace output
15002 Remove obsolete OS400 subapplications
Product Enhancements 7.0.1
VA Smalltalk lets programmers create and deploy e-business applications
that are cross-platform and object-oriented:
Support for Red Hat Linux 4.3.
Defects fixed in Version 7.5
16131 EtWindow>>#execLongOperation:message: behavior out of sync with method comment
20736 Browsing class hierarchy of TrailBlazer version of App Manager yields walkback
21889 (-2 reciprocal positive) should be false
22164 Oracle 8 cursors on Unix fails calling wrong API for binding a param name
24225 Cannot invoke stored procedures without parameters
24226 nullsOk is preset incorrectly for host variables
24227 implementsStoredProcs should be a class method
24228 Oracle RAW fields broken with 6.0.3 change
24852 Attempt to retry "browse implementors..." with no results
24917 .INI file [Help] content fixes
25014 Document Server writes extraneous log file -- fails on Vista
25123 XML local-sensitive number conversions
25334 Code page conversion fails on unix if passed same source an target
Product Enhancements 7.5
Support for SuSE Enterprise 10 Linux, Windows Vista and Windows Themes.
VA Smalltalk complies with the Vista User Account Control requirements and
responds to themes.
Database Support for new Oracle 10g features including LOB manipulation,
programmatic execution of SQL statements and expanded uses of stored procedures.
The following tools and frameworks are shipped with the product:
1. ENVY QA
2. Refactoring Browser
3. SUnit framework and browser
4. Mastering ENVY Developer tools
Inclusion of an interactive web services example to assist the
uninitiated into the workings of the web services framework.
Inclusion of updated icons with the development environment.
2095 Bring VA Smalltalk support current for Oracle 10g
3670 Envy QA
3674 Envy Extentions: Refactoring Browser
3791 SUnit test framework and browser
16312 Web Services in 10 min example
16644 Windows Themes
18011 Windows Vista Tolerance
18014 Modernize IDE: upate icons
18422 Test product on SUSE
21104 Documentation of Vast Unix requirements
23966 data type TIMESTAMP integrated into Oracle 10g
25060 Mastering Envy Developer
Defects fixed in Version 7.5.1
16118 VisualAge mentioned in the Composition Editor
18238 GF/ST does not load easily
24659 widgetless AbtContainerDetailsView>>#selectColumn: sets selection incorrectly
24661 Attribute get/set not generated in a default category
24662 Interface declarations not generated in a default category
25123 XML local-sensitive number conversions
25416 CfsFileStream bug in the method #flush
25787 Refactory Browser
26125 7.5 Packaged Image running as NT Service Issue
26173 Broken link in Installation Guide
26174 Bug in DateAndTime abtXmlFromTimeString:
26236 Code page conversion fails between 'UTF-8' and some iso code pages
26257 Synchronize Versions of AbtCommonAppBldrEditorApp &AbtCommonAppBldrModelApp
26803 SST Ics missing
27378 VASmalltalk 7.5 running out of GDI-Objects
28026 Bug in Behavior>>specialSelectorIndexFor:
Product Enhancements 7.5.1
26221 Consolidate EtToolsVendorExtensionsApp and VisualAgeVendorExtensionsApp
26976 Configuration Map Browser enhancement to lineup management
22060 Quick form support for DateAndTime
On UNIX, "X Error: BadWindow" message appears for Slider part
Each time the Slider part is repainted the "X Error: BadWindow (invalid Window parameter)" message
is printed in the xterm window which VisualAge Smalltalk was launched.
The Slider part still functions normally.
(7.0.1) AbtPortableNotebookPageView broken for some users by V6.0.3
In V6.0.3, code was changed in AbtPortableNotebookPageView so that
invoking the aboutToBeSwitchedTo event was not deferred. This aligned
its implementation with aboutToBeSwitchedFrom which is also not
deferred. Before this change was made, if a user quickly clicked on
more than one notebook tabs which had associated events, the events
could be run out of order. For example, if Page2 has both these events
connected, and if a user is on Page1 and rapidly clicks first on the
tab for Page2 and then on the tab for Page3, the events could be run in
the order switchFrom Page2, switchToPage2. This is obviously incorrect
Unfortunately, some user applications depended on the deferral of
execution of the aboutToBeSwitchedTo event. For example, it could be
used to set focus to a particular subpart of the notebook page when the
tab for the page was selected. These application were broken by the
Since it is not possible to automatically satisfy the needs of both
sets of applications -- those that depend on execution deferral and
those that depend on no execution deferral, another solution is needed.
One possible solution for these broken applications is to change their
implementation so that the aboutToBeSwitchedTo handler does the
deferral of execution itself if needed. So a method that needs this
capability and that used to look like this:
should be rewritten as:
[aComp setFocus] abtDefer
Another solution is to return the system's implementation to the old
(deferral of execution) behaviour. This can be done by changing the
the value of following line in the .INI file from false (6.0.3
behavior) to true (6.0.2 and previous behavior):
(7.5.1) Consolidate EtToolsVendorExtensionsApp and VisualAgeVendorExtensionsApp
The vendor extension applications were provided to allow add-on tool providers
to extend the Smalltalk browser menus. Historically, since they were not provided
with the Smalltalk product itself, the vendor extension applications were included
with each add-on tool. This caused a problem since there were multiple incompatible
versions of the vendor extension applications available and included.
The newest version of the EtToolsVendorExtensionsApp has been included in the
ENVY/Image Development map and the latest version of the VisualAge VendorExtensionsApp
has been included in the VisualAge Development Environment map. Add-on tool providers
should remove these applications from their distribution packages to ensure the vendor
extensions are not back-leveled.
(7.5.1) Configuration Map Browser enhancement to lineup management
Prior to this enhancement, the only support for reordering the required
maps lineup was to move selected maps to the beginning or the end of the lineup.
Now the Required Maps -> Move menu (and popup menu) provides 4 options --
Up and Down move the selected maps up or down one position in the lineup.
On Linux, Ghost dialog windows may appear
Under certain Linux configurations, some operations that use progress dialogs can cause empty or
"phantom" dialog boxes to remain after the operation has completed. These phantom dialog boxes can
show up as a small rectange that is completely blank and cannot be moved.
To work around this problem, make the following modification to
aBlock argumentCount = 1
ifTrue: [runBlock := [aBlock value: inProgressDialog]]
ifFalse: [runBlock := [(Delay forMilliseconds: 100) wait. aBlock value]].
On MVS, INIs are optional for packaged applications. All other platforms, INIs are required for packaged applications
On MVS, an .ini file is optional. On all other platforms, an .ini file is required. The .ini file
may have the same name and be in the same directory as your executable (on Unix, the executable is
es or esnx). The .ini file can also have the same name and be in the same directory as your .icx or
In addition, you can specify your .ini file as a command line parameter. For example, you can
launch your program by typing the following:
abt -imyapp.icx -ini:c:\any.ini
(7.0.1) Block>>#critical should be categorized as API
The Block>>#critical method is commonly used to ensure single-threaded
execution of a section of code even though it is not categorized as API
and is not documented. The following documentation is added and the
method is recategorized as CPM-API.
The IBM Smalltalk Programmer's Reference needs to be updated. The
affected pages are:
* 48, Block evaluation methods, Protocol synopsis, Block evaluation
critical Evaluates the receiver (a zero-argument block) and guarantees
that there will be no context switch while the receiver is being
evaluated. Answers the result of the last statement to be evaluated.
(7.0.1) Support for more than 2GB memory on Windows
The executables (abt, nodialog, esvio, abtntsir, and abtntsrv) are linked
with the /LARGEADDRESSAWARE switch so that more than 2GB of memory can be
be referenced if the Windows environment is setup properly to support such
access. For information on how to setup the Windows environment to support
this capability, see the MSDN article titled "4GT RAM Tuning"
MQConnectX function undefined for MVS
When loading the MQSeries feature on MVS, users will notice the following warning...
Warning: 91 Defined global MQConnectX in unmanaged namespace while loading AbtMQCall
This error is due to the existence of the MQConnectX function in the AbtMQSeriesBaseApp while not
being defined as it should in hte AbtMQSeriesMVSSubApp. Although this problem will not break
applications created with versions of VisualAge Smalltalk up to and including V 6.0, this function
will not be available to new applications unless defined. To avoid this error message a definition
for the function can be placed in AbtMQSeriesMVSSubApp class>> _PRAGMA_AbtMQSeriesFunctionsMVS by
adding the following code to the pragma declaration...
(name: MQConnectX isConstant: true valueExpression:
'(PlatformFunction callingConvention: #c
parameterTypes: #(#pointer #pointer #pointer #pointer #pointer)
Get schema function on Stored Procedure Specification Settings
When using stored procedures with the new Oracle 8 database connection, the Get schema function on
the Stored Procedure Specification Settings view only works for procedures that are not contained
in packages. Users must manually define host variables for procedures that are contained in
On Unix, running Database Features
On Unix, if you are using database features and experience a core dump when exiting VA Smalltalk,
comment out the PlatformLibrary>>shutDown method. An alternative solution for your packaged
application is to execute the following code when exiting:
Oracle initialization mode can be changed without subclassing AbtOracle8DatabaseManager
Prior to this fix, the only provided method for changing the Oracle initialization mode was to
create a subclass of AbtOracle8DatabaseManager in order to override the #userDefinedInitializeMode
method. While this method is still available, it is now possible to change the default
initialization mode by setting a class variable. The provided method for doing this is
AbtOracle8DatabaseManager class>>#defaultInitializeMode: . The shipped default value is
OCI_DEFAULT, which is unchanged from previous VA Smalltalk version. See the comment in
AbtOracle8DatabaseManager class>>#defaultInitializeMode: for other possible values.
Prerequisite AbtRecordStructureApp in Database Applications
Some database applications will need to add a prerequisite for the AbtRecordStructureApp
application. Applications that use Database Parts will not need to add this prerequisite because
the parts will include the AbtRecordStructureApp application. If an application manipulates
instances of any of the subclasses of AbtRow, they will probably need to add this prerequisite.
If you package your application and get the error The attribute Pub <Attr name> does not exist at
runtime, you need to include the AbtRecordStructureApp application.
(7.0.1) ODBC Drivers are no longer shipped with VisualAge Smalltalk
VisualAge Smalltalk Enterprise V4.5 was the last release to ship with
ODBC drivers. The drivers in V4.5 were provided by MERANT (formerly
INTERSOLV Inc.). If you need to obtain ODBC drivers, the DataDirect
product may still available directly from MERANT.
You can also check your Database Resource Manager for ODBC drivers.
Most, if not all, major Database Resource Managers now ship with ODBC
Display Resolution for DBCS machines
To ensure all information is displayed on your computer, we encourage you to use the highest
resolution offered by your display terminal.
Using an English version of Lotus Notes
The NLS versions of Lotus Notes must be installed on the native Operating System (OS) platforms, in
order for Notes to work. If a US-English version of Lotus Notes is installed on the native OS, then
the user will not be able to input either SBCS or DBCS characters correctly. This is a restriction
with Lotus Notes.
Web Connection does not support DBCS char for Cookies
DBCS cookies are not supported using the Servlet Interface. This is a limitation of the HTTP
On UNIX, Netscape 4.7 may not start automatically
On the UNIX platform, if you use Netscape 4.7, VA Smalltalk may not be able to bring up
Netscape when you try to access the help system. To workaround this problem on HP-UX and Sun
Solaris, bring up Netscape manually before accessing the VA Smalltalk Help. On AIX, bring up
Netscape manually and type in the following URL :
Error detaching documents using Domino Connection
When detaching a file attachment using the Domino connection, the detached file is corrupted. The
problem only shows up if the attachment is BASE64 encoded. Detaching the same attachment using the
Notes Client works fine. Detaching via Domino connection also works fine if the file has been
attached manually using the Notes Client.
Withdrawal of EMSRV support for Windows NT/2000/XP on SMP hardware
Running any release of EMSRV for Windows NT/2000/XP on a machine with more than one processor may
lead to code repositories becoming corrupt. The increasing number of reports of corrupt code
repositories resulting from running EMSRV in these environment has caused the following changes to
be made to EMSRV:
EMSRV 7.0a (shipped only with VisualAge Java) and EMSRV 7.1 (shipped with VisualAge Smalltalk 5.5
and 6.0) -- if EMSRV detects more than one installed processor, it will report the following to
the console (or to the Application Log if EMSRV is running as a service) and then exit:
WARNING: Running EMSRV for Windows NT/2000 on multiprocessor hardware is not supported due to the
likelihood of a repository becoming corrupted.
EMSRV 7.1a (shipped with VisualAge Smalltalk 6.0.1) -- if EMSRV detects more than one installed
processor, and the -mp command line option is not specified, it will report the following to the
console (or to the Application Log if EMSRV is running as a service) and then exit:
WARNING: Running EMSRV for Windows NT/2000 on multiprocessor hardware is not supported due to
suspected operating system bugs that may result in repository corruptions. Install and run EMSRV
on a machine with a single processor or start EMSRV with the -mp option to bypass this check.
The check for SMP hardware can be bypassed by starting EMSRV with the -mp command line option. By
doing this, you will be running EMSRV on an unsupported platform and must assume full
responsibility if code repositories become corrupted. When starting with the -mp command line
option, EMSRV will still report a warning to the console (or to the Application Log if EMSRV is
running as a service):
WARNING: Running EMSRV for Windows NT/2000 on multiprocessor hardware is not supported due to
suspected operating system bugs that may result in repository corruptions. You have chosen to
start EMSRV with the -mp option to bypass a check that normally restricts EMSRV from running on
multiprocessor hardware. This may cause repositories to become corrupted.
Note that EMSRV continues to support SMP hardware in all other operating system environments.
Accessing the Smalltalk newsgroup using Netscape
If you are attempting to access the VisualAge Smalltalk newsgroup
news://news.software.ibm.com/ibm.software.vasmalltalk using a Netscape browser, you must choose one
of the following items in the Netscape browser's
1. Direct connection to the Internet
2. Manual proxy
If you have selected an autoproxy from this menu, your attempt to access the VisualAge Smalltalk
newsgroup will fail.
Copying from Windows Explorer into an OLE Client part
Use copy and paste to share OLE objects between the Windows Explorer and an OLE Client part.
Dropping an OLE object that was dragged from the Windows Explorer onto an OLE Client part does not
No issues at this time.
HTTP server access log
An SST HTTP server can write an "access" log containing an entry for each request received by the
server. Entries in the log are formatted according to the default format used by the Apache HTTP
server in order to enable tooling for Apache logs to be used for SST logs as well.
The access log is initialized in SstHttpServer>>startUp. If an access log is desired, it can be
specified in 2 ways:
1) The application can send SstHttpServer>>accessLogFormatPolicy: AND SstHttpServer>>accessLog:
prior to sending SstHttpServer>>startUp.
2) The application can be started with the following commandline switch: -sstaccesslog. This will
cause a log file named httpd.log to be written in the current directory.
Migration note: To maintain the same logging behavior in VA Smalltalk V7.5 that was provided in
VisualAge Smalltalk V6.0.3, V6.0.4, VA Smalltalk V7.0 and V7.0.1 you should start your runtime
application with the -sstaccesslog commandline switch.
Performance improvement in writing walkback log
In previous releases of VisualAge Smalltalk Server Runtime, only one method of logging a simple
walkback was provided. When an error occurred, the walkback information was written to
TranscriptTTY. This caused the walkback information to be written to the console (Unix) or to a
log file identified by the -l commandline option. Since TranscriptTTY does unbuffered
character-at-a-time output, it can be very time consuming to write the walkback information.
For VisualAge Smalltalk V 5.5.2 and later, an alternative output mechanism is provided. When it is
enabled, this mechanism writes the walkback information to a file stream just as would be done for
a Reduced Runtime image. This is a buffered operation which can be more than an order of magnitude
faster than writing to TranscriptTTY.
To enable writing the walkback information to a file stream, you must provide the startUp class
with the filename of the file to be associated with the file stream. For example, to see the
difference in behavior, create an XD image and load the HelloWorld application. Then package it
specifying AbtHeadlessRuntimeStartUp as the image startup class. If you specify HelloWorld
haltHelloWorld as the application entry point, the walkback will be written to TranscriptTTY (you
need to specify the -l commandline switch at runtime to see this output on Windows and OS/2); if
you specify System image startUpClass walkbackFileName: 'runtimeWB.log'. HelloWorld haltHelloWorld
as the application entry point, the walkback will be written to the runtimeWB.log file.
SST IIOP Support is Obsolete
CORBA IIOP facilities provided by SST in previous releases are obsolete as of this release. The
implementation provided in previous releases continues to be shipped with this release, but all
methods have been recategorized as 'OBSOLETE'. There will be no further developement or enhancement
of these facilities, and they may be removed from the product in a future release.
Customer applications which made use of these facilities in a previous release will continue to be
supported as they are migrated to this current release.
Customers are advised to make use of Web Services technologies, such as XML and WSDL, for future
Support for JDK 1.3 using RMI
The RMI in Server Smalltalk will run under JDK 1.3, using the same techniques that were required
for JDK 1.2.
UnixSocketDemux>>sstWarn: sends AbtCLDTAdditions message
SstUnixSocketDemultiplexer>>sstWarn: sends #abtPadWith:upToLength:onRight:, which is implemented in
AbtCLDTAdditions - an app not in the prereq chain of the controller for
This method will likely be removed during packaging, causing a runtime DNU.
Workaround: include AbtCDLTAdditions when packaging an SST app.
Using XD Interactive Debugger over TCP/IP with no nameserver
When trying to use the interactive debugger, if you are getting the error EHOSTNOTFOUND or
EADDRNOTAVAIL on the runtime side, the problem may be that your runtime machine cannot resolve the
dotted TCP/IP address of your development machine. You can work around this problem by adding an
entry to the hosts file on the runtime machine for your development machine.
Uninstalling VA Assist
Uninstalling VA Assist is a bit involved. To uninstall the feature,
1. Start with an image named the generic name: abt.icx.
2. Launch the image.
3. Disable VA Assist (From the Transcript choose Tools -> VA Assist Pro -> Disable.)
4. Save (using the Transcript -> Save) and restart the image.
5. Uninstall the feature. There are two ways to do this:
a) From the Transcript choose Tools -> Load/Unload Features...
Select VA_ VA Assist Pro from the right pane and move it with the << button to the
left pane. Dismiss the dialog with an OK.
b) From the Transcript choose Tools -> VA Assist Pro ->Uninstall.
6. Save the image using the Transcript -> Save.
7. If you renamed your image, restore its former name.
No issues at this time.
Suppress serialization of nil attribute values when attribute mapping specifies Required="false"
This change does NOT affect objects that utilize an XML schema for serialization.
Nil attribute values are now suppressed during serialization of attributes with attribute mappings
that specify 'Required="false".
<ClassElementMapping ElementTagName="customer" ClassName="AbtXmlSampleCustomer" >
<AttributeMapping ClassAttribute="lastName" Required="false"><Attribute>lastName</Attribute>
If the lastName attribute of a serialization target object is nil, the serializer will not render
the 'lastName' attribute.
XML code page conversion (unsupported encodings)
The XML parser automatically performs code page conversion before attempting to parse an XML
stream. Many code pages are handled seamlessly using the default code page conversion routine of
the runtime operating system. However, there are some character encodings that cannot be converted.
Unsupported code page conversions cause walkbacks at execution time.
The following code pages are not supported:
* EUC_JP conversion is not properly supported by native Windows code page routines.
* The code page ISO-2022-JP is not supported by native routines
The VA Smalltalk XML support attempts to map XML character set encodings to valid code pages. The
default mappings can be overridden using the API shown in the following example:
AbtXmlStreamConverter mapEncoding: 'UTF-8' toCodePage: 65001.
VA Smalltalk uses the code page conversion support APIs that are built in to each of the supported
platforms. Therefore, code page mappings may be different for different operating systems. If you
encounter a debugger with the following message it is likely that you have encountered an unmapped
or mismapped encoding.
Abt.Nls.160.e: Conversion from code page <sourceCodePage> to code page <targetCodePage> is not
THIS DOCUMENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. INSTANTIATIONS DISCLAIMS
ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, THE
IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE AND MERCHANTABILITY
WITH RESPECT TO THE INFORMATION IN THIS DOCUMENT. BY FURNISHING THIS DOCUMENT,
INSTANTIATIONS GRANTS NO LICENSES TO ANY PATENTS OR COPYRIGHTS.
(C) Copyright Instantiations Corporation 2005,2007. All rights reserved.