VA Smalltalk Readme


Welcome to VA Smalltalk Version 8.5.2

VA Smalltalk enables software developers to create highly portable, scaleable, multi-tier business applications using object-oriented technology. VA Smalltalk allows for incremental and rapid development of new Smalltalk applications. Developers can build and deploy enterprise Web service solutions for dynamic e-business using VA Smalltalk.

What's New in V8.5

What's New in V8.5.1

What's New in V8.5.2

Late-breaking news, technical tips, and product updates

Please refer to the Instantiations Smalltalk home page for technical information including tips and product updates made after this product release. The web page includes information about what's included in the release, and how to contact us as well as hints and tips for using and deploying VA Smalltalk.

You can download the latest product updates, as well as product add-ons, from the Instantiations Smalltalk download page.

Version 8.5.2 files and installation

Distribution files

Each supported VA Smalltalk platform has three downloadable components:

The Client component contains the VA Smalltalk development IDE. You will need to install a client on each machine on which you wish to develop VA Smalltalk applications. You must download and install the correct client package for your workstation operating system.
The Manager component contains the VA Smalltalk source code repository ('manager') file and the EMSRV code used to access the repository file in a team environment. The manager is used in conjunction with the workstation client IDE. One code repository can support many clients concurrently. Therefore you will only need to install the manager one time on a suitable server machine. You must download and install the correct manager package for your server machine's operating system. It does not have to match the client operating system. A Linux manager install, for example, can concurrently service Windows, AIX, Solaris and Linux clients. The same is true for all of the other manager installs.
Server Runtime
This is the runtime support needed for deploying Smalltalk applications developed using VA Smalltalk. There is no formal install program for Server Runtime. You simply use unzip to unpack the runtime files and add your packaged Smalltalk application into the resulting directory structure. You must download and unpack the correct Server Runtime package for your workstation operating system. The files needed to include at runtime are listed in Redistributable Runtime Files.

If you do not already have a suitable unzip program, then you can download a no-charge unzip program such as Info-ZIP.

Note: The gunzip program will not work with the VA *.zip files. The VA *.zip files are multi-file archives while gunzip is only designed to handle single compressed files.

You must unzip the client and manager zips on the same kind of machine that you intend to install them on. Do not, for example, unzip a Solaris client install onto a Windows machine.

Installing VA Smalltalk

Complete install instructions, such as how to set up EMSRV, can be found in the Installation Guide. The Installation Guide is in the doc directory of the unzipped client or manager install directory tree (it is the same document in both zip files):

Note: There are special steps for installing on UNIX and Windows Vista or Windows 7 which are documented in the Installation Guide.

The Installation Guide is also available online.

To install VA Smalltalk, follow the instructions for your specific platform.

We recommend you install the manager before you install the client.

If you are new to Smalltalk, we recommend you install the client with the on-line documentation. Once you have installed the manager and the client, refer to the Installation Guide for further instructions on how to configure your environment before you launch VA Smalltalk.

VA Smalltalk Migration Guide

If you have a version of VisualAge Smalltalk or VA Smalltalk already installed, please refer to the Migration Guide for important information before using VA Smalltalk V8.5.2. The Migration Guide can be read online at Migration Guide  or it can be installed with the VA Smalltalk Client by selecting the "VA Smalltalk Documentation" feature.

Corrections and Enhancements

This section lists the corrections and enhancements introduced by each release of the VA Smalltalk product.

Corrections and Product Enhancements in V8.5

  Case   Title
  -----  ----------------------------------------------------------
   32729 Inspecting a ScaledDecimal can result in 'Could not print receiver' error
   33487 Add TIFF Group 4 compression support
   38222 Unable to tell the difference between a released and unreleased subapp in StsApplicationManager
   44664 The DirectedMessage class should implement the ANSI <valuable> protocol
   45357 Error loading Mastering ENVY/Developer Testing Extensions
   46134 'Walkback.log' hard coded in VAST system
   46726 Add Option to Change the Source Code Text Pane background Color
   47574 Error 33: Exit due to missing Image file message is confusing
   47925 Client demands "Transfer-Encoding: chunked"
   48034 Add Code Completion to the Browsers
   48067 Code does not highlight for long methods
   48096 example of non-standard colors in WkTables
   48132 System-wide logging support
   48168 Add Setting Framework to consolidate support for preferences
   48169 .INI file bitmapPath is truncated at 256 characters
   48199 Crash in VM due to uncontrolled Smalltalk stack growth
   48204 VASmalltalk 8.0.2 bug in exception handling
   48209 Example of nonstandard colors in an EwTableTree
   48211 Move SUnit tests into separate maps and features
   48248 Refactory Testing map contains required map links
   48251 In Smalllint, ParseTreeLintRule>#genericPatternForSelector: uses unimplemented method withIndexDo:
   48271 Add ability to query icx file(s) for build number
   48342 Remove obsolete support from EsbBenchmarks
   48345 Change Float and ScaledDecimal 32-bit hash to give better distribution
   48369 TIFFTag for Photometric Interpretation has wrong data size on output
   48370 CgTIFFFileFormat uses comparison instead of assignment when creating a palette
   48405 SstRmiDgc >> #importing:clientData:callData: should use IdentitySet
   48451 NLS Catalog File Editor should open in first (or only) NLS directory
   48460 Add support for Deprecation exception
   48476 Ssl Certificates have expired for the Secure Web Service and Ssl Examples
   48480 ExceptionSet>>#, does not accept anExceptionSet as its argument
   48499 LCTime does not have a formatter for milliseconds
   48528 EsSymbolLiteral>>#isValidSelector: doesn't catch all the bad ones
   48564 INI files with '[' (open square bracket) characters in the value field are misparsed
   48600 VisualAgeAssist class has wrong Instantiation's address
   48611 PsiPlatformEHSCompatibility application has extraneous app configuration expression	
   48619 OrderedCollection>>at:ifAbsentPut: added for Seaside portability 
   48632 Upgrade Grease to 1.0.5+ and Seaside to 3.0.5+	
   48633 HttpContinue Constant in SstHttpConstants Pool has incorrect value - change to '100-continue'

Corrections and Product Enhancements in V8.5.1

  Case   Title
  -----  ---------------------------------------------------------   
   33629 RowSeparatorHeight error on AIX
   39193 Literals in Collections mismarked
   47589 Add SUnit support for 'expected failures'
   48058 VA Smalltalk Windows Service Installer needs -srvExeName commandline parameter
   48285 WSDL Type Not Found
   48363 Move the Method List and Text Widget Inside the Windows Tab Control
   48375 Browsers lose Color Syntax
   48378 Read PlatformLibrary logical to physical name mappings from INI file
   48473 Secure Web Service
   48668 Color class>>fromString: should reference self instead of Color
   48713 Packaging Rule Error: Class variable NlsConfigurationFileName does not exist
   48732 Rpc Literal Processing fails with fix for 48285
   48746 Some senders of System>>vaVersion slipped into V8.5
   48770 GRVASTPlatform StartUpList and ShutDownList class variables not always initialized
   48776 Deprecation Exception ignores INI File Settings
   48784 Image startup sequence causes problems for abt.cnf usage
   48801 CodeAssist is incompatible with Script Manager...walkback occurrs
   48807 Unix abtnx script points to wrong version of VA Smalltalk
   48821 z.ST: Refactoring Browser Testing has a RML for SUnit rather than z.ST: SUnit
   48823 Updating List Background Color for open EtWindows assumes list widgets are direct children
   48829 StsDebugger breakpoint widget does not consider code font
   48854 Applications Manager fails to sort Classes on redraw when releasing or versioning
   48862 StsHoverHelpWindow causes flashing in EtWindows on Win Platforms
   48876 Selecting a breakpoint widget in an EtBrowser and closing the browser causes a break
   48883 Code Assist Popup should close text manipulating hotkeys (i.e. Ctrl+R)
   48884 Preference Setting Framework support for non-homogeneous arrays 
   48888 Add camel case query support for code completion
   48890 Create framework abstractions for code assist popup positioning
   48904 Log4s includes an async appender
   48905 Log4s supports the passing of blocks
   48906 Log4s retries the socket appender
   48916 Packaging error for methods defining Pragmas
   48919 Config versions not tagged as loaded for unenhanced widgets
   48936 Walkback when changing the superclass of a class containing Pragma definitions
   48942 Code Assist wont offer suggestions if requested on last ':' in multikeyword partial
   48958 Hover Label from AbtEwHoverHelpManager should have left alignment by default
   48959 Smalltalk Help points to wrong URL
   48972 log4s and failed FileAppender creation 
   48974 Memory leak in Oracle Database access
   48976 'Loose' required map loaded indicator algorithm  broken
   48981 Provide function name information when a PlatformFunction fails
   48992 Add character literal completion to code assist
   48996 Add method block argument detection to code completion
   49001 SSL socket created from SCI socket not properly initialized
   49029 "Ctrl-B" Breakpoint ETWindows missing 
   49032 Fatal Application Error dialog box from Windows headless runtime
   49034 VA - DNS lookup under Windows
   49059 Error is a class and also an entry in the Windows PlatformConstants pool
   49071 Enhance ProgressBar to provide all current capability
   49073 StsPowerTools Settings are not the default in b203
   49074 Update GLORP to 0.3.182+
   49075 Code Assist Type Reconstruction Enhancements for post 8.5
   49076 Add match highlighting support for Code Assist
   49086 Add additional precedence level to method suggestions
   49103 Support Date and Time Picker Windows Common Control
   49108 Change class template to include classInstanceVariableNames:
   49135 Unloading SUnitBrowserApp does not update the Transcript Tools menu
   49144 Add Prereq Filtering capability to Code Assist
   49148 Remove ODBCLibraryName from .INI [Database] stanza
   49168 GRVASTPlatform>>#base64Decode: should answer a String, not a ByteArray
   49169 SST Lightweight Marshaling Enhancement
   49188 Add Mouse/Keyboard Shortcut Actions to Code Assist
   49194 Completion suggestion sorting enhancements for code assist
   49201 Tabbed Script Browser (AbtTabbedScriptBrowserWin) missing  Class/Instance buttons
   49202 Log4s fails on Cfs Errors
   49318 Help on Organizer does not function if documentation not installed locally
   49348 AbtXmlResourceReader needs to process instances of SstUrl

Corrections and Product Enhancements in V8.5.2

  Case   Title
  -----  ---------------------------------------------------------   
   6379 primitiveSystemOffset does not work correctly ...
   39863 Include Timezone Information in the Base Product
   48376 Add support for exponential notation in ScaledDecimal class>>fromString:
   48597 Oracle Solaris Driver Row Buffer Alignment Required
   48602 Container Details View selects last item if user selects below last item
   48719 C-Code TIFF G4 Compression Decoder failure
   48742 Create AbtCwRebarView and integrate it into Composition Editor
   49011 Seaside gives white HTML pages under heavy traffic
   49033 Errors when using ICs, configuration values
   49178 DB/2 packaging issues - Classes related to use of hostlers dropped from packaged image
   49262 Variable rename refactoring loses private method information
   49325 Morphing part after Assignment to Instance variable loses assignment
   49394 Added Web Services container cleanup method
   49398 AbtIbmCliFixedCharField (Len 1) and GLORP mismatch
   49412 GLORP Packaging failure - ProtoObject needs PackagerClass method 
   49463 Make FAQ and on-line docs google searchable
   49467 IC based IP-Systems do not startup correctly.
   49470 Building passive images can't find feature maps
   49471 Rewrite tool fails when rewriting temps
   49488 SciComWIN/SciComUNIX initialize their PlatformConstants twice when running in an IC
   49489 Add Tools -> Query -> Globals in Unmanaged Namespace to Transcript menu
   49491 GreaseVASTCoreApp has bad prerequisite
   49504 RBParserApp missing EsParsing prerequisite
   49505 RBCustomRefactoringUI missing RBSmalllintUIApp prerequisite
   49517 EsLogLog should write to System errorLog
   49519 SstOSObjectManager>>#freeBuffer fails when image is started
   49525 Log4s should allow timeStamps to be UTC time
   49537 Add IC Packaging Instructions for Seaside
   49551 Monticello Importer
   49558 Error in WindowsOlePlatformFramework class>>#packagerIncludeSelectors
   49583 VastGoodies Importer fails on Ubuntu 12.04
   49595 Extend 'method dictionary' classes for Monticello
   49596 MiniZip and Zlib Support (BETA)
   49612 EmLibraryInterface is missing prerequisite for CommonFileSystem
   49617 Library Statistics does not capture record with invalid reference as a corrupt record
   49654 eshell.ic missing on Unix
   49667 Missing error check in SstSmtpAddress class>>setHost:port:locally:for:
   49676 ODBC fraction conversion routine produces unexpected results
   49677 Process termination blocks inconsistency
   49704 Upgrade Glorp from v0.3.182 to v0.4.190
   49712 Extraneous text in [Help] stanza of .INI file
   49721"Auto Switch Applications" causing walkbacks in class browsers showing inherited methods
   49729 Tabbed Browsers missing support for "Use Hierarchy Default" setting
   49734 Code Assist fails when editing a shadow method
   49746 String>>asInteger removed from EsLoggingFrameworkApp
   49754 AbtCwProgressBarView does not set state at creation time
   49769 Expose getProcessId primitive
   49772 EmLibraryStatistics should provide a hex dump of invalid records to aid  debugging
   49821 EsLogManager Bug
   49855 Add EsAtom>>#, and EsString>>#asSelector as intention-revealing methods
   49925 Rebar - Visual feedback that cursor is over gripper is missing

Components and Features

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.

Application Builder

On AIX, turn NumLock off when dropping parts

Be sure that your numlock key is turned off if you are using the composition editor. The numlock will prevent parts from being dropped on the Composition Editor.

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 where VA Smalltalk was launched.

The Slider part still functions normally.


(8.5) Limitations to CwRebar

The rebar control consists of one or more bands, each of which may contain a child widget control. Neither the color of the rebar control nor the colors of the individual bands is settable. Rebars with fixed-width bands should be placed in a fixed size window.

(8.5.2) An INI file is required for packaged applications

You must always specify (or default to) an INI file when running VA Smalltalk. INI files The INI file can:

   abt -imyapp.icx -ini:c:\any.ini

(8.5.1) VerifyMemorySpaces, VerifyVMSlots, VerifyImage

VerifyMemorySpaces, VerifyVMSlots, VerifyImage can be used to identify Smalltalk memory corruption. Since these primitives write to the TTY Transcript, the image to be verified must be started with the '-l' command line option in order to collect the verification information.


No additional information at this time.


(8.5..2) DB2 CLI Fixed Character Length Fields of length 1 can now optionally return the single character string as a String rather than converting it to a Character. 

The default action is to continue to return single character strings as Character objects.  This behavior can be overridden per connection by sending keepSingleCharStringsAsString: true to each AbtIbmCliDatabaseConnection instance created.

(8.5.2) Improved packaging rules to include Abt*Field classes referenced in the typeDict and unifiedFieldMapping class variables of the AbtDatabaseManager subclasses 

The database manager typeDict and unifiedFieldMapping dictionaries are created when the database feature(s) are loaded into the image.  The Abt*Field classes mapped through these dictionaries are typically not directly referenced by code,  but are located by lookup through these dictionaries.  As a result, the necessary Abt*Field classes are not included in packaged image by default.  The new packaging rules force the related  Abt*Field classes to be part f a packaged image that includes database feature(s).

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 packages.

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:

   System primitiveExit

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.


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.

Documentation and Helps

Identifying browser and newsreader on UNIX

If you get no response from Smalltalk when requesting Help (from the Help menu or F1), the most likely cause is that the browser and/or the newsreader installed on the system cannot be found.  To correct this problem, edit the INI file (for example, abt.ini) and add links to the installed browser and/or newsreader in the [Help] stanza -- you will see examples of specifying Firefox and Thunderbird. You can specify either a complete path to the browser and/or newsreader (not usually necessary) or a relative path.

Accessing documentation on UNIX

Enter one of the following URLs into your browser:

Domino Connection

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.

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.


EMSRV support for Windows NT/2000 on SMP hardware

There are no known current issues with multiprocessor boxes under any recent version of Windows.  Under much older versions of Windows, such as Windows NT, repository corruption was observed on multiprocessor machines. It was never reproducible or diagnosed, but speculation at the time was that the problem was a file sharing bug in Windows itself (that has likely been long since corrected). As far as we know, no fix is necessary under any recent version of Windows.
As long as you use the -mp switch, you should not have any problem using EMSRV under any recent version of Windows.  We have had no reports of manager corruption in the past 5 years or more. Many customers are successfully running EMSRV with the -mp override.
In any case you should always make sure to have a current backup available in case there is any  sort of problem.
If you are still concerned about this issue, you can run EMSRV on a single processor box or use a single-processor VMWare image.
Note: Without the override results in a warning
    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.
Note: 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.

(7.5.2) Native password validation on Linux

EMSRV native password validation on Linux uses Pluggable Authentication Modules (PAM). The sample PAM file shipped with VA Smalltalk is correct for older Linux distributions, but does not work for newer distributions.


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 work.


No additional information at this time.


(7.5.1) 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 command line switch: -sstaccesslog.  This will cause a log file named httpd.log to be written in the current directory.

(8.5) Performance improvement in writing walkback log

By default, when an error occurs, the walkback information is written to TranscriptTTY. This causes the walkback information to be written to the console or to a log file identified by the -l command line option. Since TranscriptTTY output is written unbuffered character-at-a-time, it can be very time consuming to write a large volume of walkback information.

An alternative output mechanism is avasilable. When it is enabled, this mechanism writes the walkback information to a file stream. 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 name of the walkback log in the INI file:


(6.0) 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 development 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 interoperability strategies.

(8.0.2) Support for JDK 1.3 through JDK 1.6 using RMI

The RMI in Server Smalltalk has been tested with JDK 1.3 through JDK1.5, using the same techniques that were required for JDK 1.2.

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 from the run time side, the problem may be that your runtime machine cannot resolve the TCP/IP address of your development machine. You can work around this problem by adding an entry to the hosts file on the run time machine for your development machine.

VA Assist

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 File -> Save Image) and restart the image.
  5. Uninstall the feature. There are two ways to do this:
    • From the Transcript choose Tools -> Load/Unload Features...
      Select VA: VA Assist Pro from the right pane and move it using the << button to the left pane. Dismiss the dialog with an OK.
    • From the Transcript choose Tools -> VA Assist Pro ->Uninstall.
  6. Save the image using the Transcript File -> Save Image.

Web Connection

Web Connection does not support DBCS characters for Cookies

DBCS cookies are not supported using the Servlet Interface. This is a limitation of the HTTP Server.


(8.0) Deserialization of a SOAP Envelope failed when the defining schema contained an element using a ref attribute referring to an imported schema

  Consider the following excerpt from the schema and mapping specs:

  Schema 1:

  <?xml version="1.0" encoding="UTF-8"?>
  <xs:schema xmlns:xs=""
      <xs:import namespace=""   schemaLocation="StatusSchema.xsd"/>
      <xs:element name="SessionRequest" type="StartSessionRequestType"/>
      <xs:element name="SessionResponse" type="StartSessionResponseType"/>
      <xs:complexType name="SessionRequestType"/>
      <xs:complexType name="SessionResponseType">
                  <xs:element ref="ais:Status" minOccurs="0" maxOccurs="unbounded"/>
                  <xs:element name="SessID" type="xs:string" minOccurs="0"/>

  Mapping Spec for SessionRequest:

  <?xml version="1.0"?>
  <!DOCTYPE XmlMappingSpec SYSTEM "abtxmap.dtd">
  <!-- NameSpaceURI must match with the namespace on the Schema                       -->
  <XmlMappingSpec Name="" NameSpaceURI="" >    
    <ClassTypeMapping TypeName="SessionRequest" ClassName="ExStartSessionRequest"/>
    <ClassTypeMapping TypeName="SessionResponse" ClassName="ExStartSessionResponse">
            <AttributeMapping ClassAttribute="status" NameSpaceURI="">
            <AttributeMapping ClassAttribute="sessionId">

  Mapping Spec for Status:

  <?xml version="1.0"?>
  <!DOCTYPE XmlMappingSpec SYSTEM "abtxmap.dtd">
  <!-- NameSpaceURI must match with the namespace on the Schema                       -->
  <XmlMappingSpec Name="" NameSpaceURI="">

    <ClassTypeMapping TypeName="Status" ClassName="ExStatus">
            <AttributeMapping ClassAttribute="returnCode">
            <AttributeMapping ClassAttribute="returnCodeDescription">

  After deploying the web service and sending a request,  the web services framework did not 
  deserialize this response:

  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <env:Envelope xmlns:env=""
        <SessionResponse xmlns=""        
       <Status xmlns="">        

  It reported the error: 

  "XML mapping error ##ObjectInitializationError: ''Unable to process element ''''TransactionStatus'''''''   ".
  The problem occurred because the code considered the Status  element to be in the 
  "" namespace, not in the namespace of the imported schema. 
  The framework was  modified to take into account the namespace of the prefix on an element with a ref

(8.0) WSDL deployment fails when a schema attempts to import a schema which is already being imported

The schema parser in VA Smalltalk is recursive. Whenever a schema import is encountered, a new parser is created which begins to parse that schema. The new parser is added to a stack. This process continues until there are no more schemas to be imported; then the final schema import is completed. The previous import is then completed until the stack is unwoundd. If an imported schema imports a schema which has already been imported by a previous schema, an infinite loop results and an out of memory condition is encountered. For example:

  WSDL A imports Schema A.

  Schema A imports Schema B.

  Schema B imports Schema A.

Modifications were made to track schemas which have currently begun to be imported and to skip duplicate imports.

(8.0) WSDL and imported schemas using the document/literal or document/literal wrapped style are not deployed/serialized properly

  Deployment Problem

  The typical error message in this situation occurs during deployment with the message:

  'The type an AbtXmlQName(requestheader:WachoviaRequestHeader) for WSDL part ''SomeWSDLPart'' could not be determined'

  The problem occurred when the "document/literal wrapped" style of wsdl was used and the element
  was defined in an imported namespace, e.g.,





    <xs:schema xmlns:xs="">

      <xs:import namespace="myNamespace2" schemaLocation="C:\aSchemaLocation"/>



  <wsdl:message name="RequestMessage">

      <wsdl:part element="importedNamespace:Request" name="Request"/>

  An instance of the SstWsdlDefinitions class contains the parsed artifacts of the web service including
  the schemas defined or imported in the types section.  WsdlDefinitions has an instance variable "types"
  which contains an instance of the SstWsdlTypes class.   namespacemappings instance variable.  During parsing
  of the types section, schema namepsaces were added  to a dictionary assigned to this variable.  The schemas
  themselves were placed into the schemas instance variable. Only namespaces of schemas defined wtihin the section
  and schemas directly imported within the types section are included.  However, these imported schemas often
  import other schemas.  The imported schema's namespaces and prefixes are not assigned to the schemas dictionary;
  they appear in the WsdlDefinitons types instance variable in its imports dictionary.  Since this dictionary is
  not searched during the deserailziation/serialization process, nor during the wsdl message parsing process, web
  services with this type of schema importation could not be deployed or serialized/deserialized.  

  Code was added to cache all namespaces contained in  imported schemas during parsing; when all schemas were
  imported, iterate through the cache and:

   1. place all namespaces into the SsdWsdlDefinitions namespaceMappings Dictionary

   2. place all schemas in the SstWsdlTypes schemas dictionary

  Serialization Problem

  All necessary namespaces were not included in the Soap request envelope if imported namespaces and
  schemas were needed to fully define the request.

  Code was added to examine all schema elements included in the request and to add their namespaces to
  the Soap envelope.


  In order to retain backward compatibility, the new processing has been made optional on a container--wide
  basis.  To use it, create a container using:

    SstWSContainer>>createContainerUsingDocLiteralWrappedNamed: aString

(8.0) An Element with a ref attribute referring to another namespace was serialized incorrectly in the SOAP Envelope

  A schema element which contained a ref attribute to a type in another namespace was not serialized with
  the correct prefix in the Soap request envelope.

  Consider the following excerpt from a schema: 


  <xs:schema  xmlns:thisNamespace =""
            xmlns:cust =""
            targetNamespace="" >
  <xs:import namespace="" schemaLocation="C:\theSchemaLocationl"/>
      <xs:element name="StatementRequest">
                        <xs:element ref="cust:Customer"/>


   Prior to V8.0, the SOAP serialization would produce the following in a request envelope:

       xmlns:thisNamespace =""
      xmlns:cust =""
                        <cust:Name>Bob Smith</cust:Name>

  The code has been modified to result in the request envelope:

       xmlns:thisNamespace =""
      xmlns:cust =""
                        <cust:Name>Bob Smith</cust:Name>
  Since the Customer complex type is imported from the "" namespace, the prefix for cust:
  should  be used to qualify it.

(8.0.1) web services XML directory

The default resource qualifier is <varoot>/xml where <varoot> is the installation directory. A problem occurs on UNIX if a web service attempts to write into this directory since normally this directory can only be written into by the root user. The solution is to change permission on the /xml directory and its content files to 766.

The same problem ocurs on Windows Vista and later versions of Windows with UAC active.


(8.5.1) Level of code

Seaside 3.0.6+ / Grease 1.0.6 level of function is delivered in this release (see the Notes section of each Configuration Map for the exact Monticello package versions). This includes the following:

(8.0.1) Seaside Support Documentation

Seaside support is documented in Dynamic Web development with Seaside.

(8.0.1) Limitations:


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:

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



(C) Copyright Instantiations Corporation 2005, 2012. All rights reserved.