                      VisualAge(R) for Java(TM)
                             Version 3.0

                    Integrated Development Environment

                            RELEASE NOTES

Table of Contents
-----------------

1.0 Introduction
2.0 Limitations and known problems
    2.1 Web browsers
        2.1.1 Launching web browsers on Windows (R)
        2.1.2 Color limitation with Netscape on OS/2
        2.1.3 Running applets in a web browser
    2.2 Printing
    2.3 Import SmartGuide
    2.4 Debugger 
        2.4.1 Security manager
        2.4.2 Breakpoints in classes.zip class files
        2.4.3 Breakpoints in constructors
        2.4.4 Breakpoints move when editing code
        2.4.5 Breakpoint placement in .class files
        2.4.6 Stepping through code with local variables
        2.4.7 Sorting exceptions in Exceptions page
        2.5 Scrapbook and Inspectors
    2.6 Code assist
        2.6.1 Availability of code assist
        2.6.2 Activating code assist
        2.6.3 Code assist limitations
        2.6.4 Parameter names are not shown for constructors
        2.6.5 No failure message in status bar
    2.7 UNIX
        2.7.1 UNIX - font sizes
        2.7.2 AIX and Solaris - readability of fonts
        2.7.3 UNIX - Shared libraries
        2.7.4 Solaris - Timestamps
        2.7.5 Solaris - Accelerators
        2.7.6 UNIX - Printing
        2.7.7 AIX - Undo formatting
    2.8 Japanese .jar files
    2.9 Japanese fonts 
        2.9.1 Japanese fonts on OS/2
        2.9.2 Japanese fonts in Options dialog
    2.10 Miscellaneous
         2.10.1 VisualAge for Java does not support Logitech scroll mouse
         2.10.2 Projects that start with the same name as system projects
         2.10.3 Changes are only reflected by manual refreshing
         2.10.4 Changing locales in Windows (R)
         2.10.5 Package conflicts occur if all features are loaded into
                the Workbench
3.0 Hints and Tips
    3.1 Caching
        3.1.1 Setting up the cache
        3.1.2 Clearing the caches
4.0 Corrections to the documentation
    4.1 Debuggers
    4.2 IDE - Deploying code

1.0 Introduction
----------------

This release note contains information about various limitations and
known problems associated with the IDE, as well as hints, tips, and
workarounds.



2.0 Limitations and known problems
----------------------------------

2.1 Web browsers

2.1.1 Launching web browsers on Windows

Windows has two different types of file associations for web based
documentation. The first type of association is for .htm and .html
files launched locally (for example, c:\index.htm). The second is 
for non-local files in URL format 
(for example, http://www.software.ibm.com/ad/vajava) and is called 
"URL - Hypertext Transfer Protocol". VisualAge for Java uses the 
first association for most Help menu items, and the second one for
the Help - Support menu item, which is a direct link to a VisualAge
for Java support page. Typically, when a web browser is installed it
configures both of these associations automatically. 

If a VisualAge for Java Help menu option fails to open a web browser
your associations are not properly configured.  To determine
if the associations in Windows are properly set up, go to the Windows
Start menu and select Run. Type in the name of an .htm file or a URL
(for example, http://www.software.ibm.com/ad/vajava'). In both cases,
a web browser should open. If a web browser fails to open it 
means your associations are not properly configured.

In the event the web browser does not open, you can either reinstall
the web browser, manually configure your Windows associations, or in
VisualAge for Java, go to the Help page of the Options dialog (which can 
be reached from the Workbench by selecting Window - Options)
and select 'Specify browser path' instead of 'Use file association'.

2.1.2 Color limitation with Netscape 2.2 on OS/2 Warp 4

When running Netscape 2.2 simultaneously with the VisualAge IDE on
OS/2 Warp 4 in 256 color mode, the IDE is unable to obtain all the
colors needed to draw widgets and graphics.

Workarounds: 
1. Disable palette awareness in Netscape.  Deselect the palette 
   aware option on the General Preferences Color page.

2. Use 16-bit color mode.

2.1.3 Running applets in a web browser

If your exported applet does not run in your web browser ensure that
your browser supports JDK 1.1.7.  Consult the web browser's
vendor site for any JDK related fixes. Also, ensure that your
web browser's security settings are correct for running your applet.

2.2 Printing

Some printer drivers provide incorrect information about the size of
the fonts used in the driver. Others have problems scaling images or
drawing lines properly. These problems are most commonly found in
PCL printer drivers.

Printer driver problems can cause some of the following errors
when printing from VisualAge for Java:
    - text runs off the right margin of a page
    - text extends outside of its rectangle in the class graph
    - class graph icons are positioned improperly
    - unexpected lines are drawn in class graphs

These problems can usually be solved by ensuring that you have the
latest printer driver that is available for your printer. If your
printer supports PCL and Postscript, use the Postscript version of
the driver. It is usually more accurate.

The following drivers have exhibited these kinds of problems:
    IBM Network Printer 17 PCL - OS/2 <older versions>
    IBM Network Printer PCL Driver 1.14 - Windows 95

2.3 Import SmartGuide

When importing from directories, you normally should not select a
subdirectory of a package hierarchy as the root directory for import. 
If you do, the resources will be copied incorrectly. For example, if
you were to "export" the IBM Java Examples project, the result is 
a directory structure such as:

    \com\ibm\ivj\examples\awttextframework
    \com\ibm\ivj\examples\awttestlauncher
    \com\ibm\ivj\examples\awttests
    and so on.

To import from directories you should choose the directory which
contains the com subdirectory and use the "Details..." prompter to
select the subdirectories you want. The subdirectory structure for
the resources will be recreated when you import.

2.4 Debugger 

2.4.1 Security manager

Installing a security manager that does not allow complete access 
to members and properties can cause exceptions or missing fields in
the debugger due to introspection failures.  This affects
SecurityManagerand its subclasses.

Workaround: Do not use a security manager when debugging code, or 
ensure that your security manager allows access to members and 
properties.

2.4.2 Breakpoints in classes.zip class files

Breakpoints placed in found in classes.zip external class files may 
not trigger. 

Workaround: Place the breakpoint in the copy of the class which is 
located in your Workspace.

2.4.3 Breakpoints in constructors

When a breakpoint is set in a constructor, it may actually appear 
in the line of code below the line it is set in. This problem causes
the debugger to improperly highlight the constructor code when 
you are stepping through it.

Workaround: If the breakpoint is appearing on the wrong line, you 
can add a multi line comment above the constructor definition to move the lines of code.

2.4.4 Breakpoints move when editing code

Breakpoints move to different lines when new lines of code are 
inserted or deleted above them. 

Workaround: Clear all the breakpoints in the method before adding 
new lines of code or removing code and set them again after the
method is saved.

2.4.5 Breakpoint placement in .class files

In external .class files you can only place breakpoints at the 
beginning of a method.

2.4.6 Stepping through code with local variables

In a few cases, the debugger will try to display a local variable
before it has been properly initialized. This will cause a system error
to occur.

2.4.7 Sorting exceptions in Exceptions page

In the Exceptions page, a system error occurs if you select Throwable
and then change to the hierarchy view.

Workaround: Do not select Throwable when switching to the hierarchy 
view.

2.5 Scrapbook and Inspectors

Displaying extremely long single lines (larger than 10K) in the 
scrapbook can cause an exception, depending on the platform and 
graphics driver. In some situations an exception may not occur, 
but a noticeable delay will occur as the text is inserted.

Workaround: If an exception occurs remove the scrapbook page.

2.6 Code assist

2.6.1 Availability of code assist

Code assist is available in a method source view, Scrapbook,
Inspector, breakpoint modify dialog and the event-to-code connection
editor of the Visual Composition Editor. A limited form of code assist 
is available in the class source view.  Code assist generally requires 
that your code prior to the current cursor location be syntactically 
correct. An exception to this is the Scrapbook and Inspector where, if
a syntactic error is found, code assist will use only the source back 
to the first empty line or the beginning of the line. Also the limited
code assist in the class definition considers only the current word and
provides completion for types and statics based on the last saved class
definition.

2.6.2 Activating code assist

To activate code assist press Ctrl-Space or Ctrl-L. On some Japanese
platforms Ctrl-Space is reserved for IME activation. In this 
situation Ctrl-L can be used to activate code assist. These keys can
be modified using the keybindings in the Options dialog 
(which can be reached from the Workbench by selecting Window - Options).

   
2.6.3 Code assist limitations

This section describes some of the limitations of code assist:

-   In the case where a possible field completion would be hidden by a
    visible local variable with the same name, code assist will not
    filter out the hidden field, and will still present it as part 
    of the user selection. Note that even having picked up the field,
    compilation will bind to the local variable. For example, after 
    defining the following class X, browse its constructor.
     
	class X {
        int value;
        X(int value){
            this.value = value }
    }
    When requesting code assistance in the constructor, in the right
    hand side of the assignment: 
    this.value = val<code assist> 
    VisualAge for Java will find two completions: the field and the
    local, where actually the local variable is hiding the field.
    
-   There are some locations where code assist will propose type
    completions where it should not. Selecting and inserting a 
    type in this case will result in invalid source.  
    For example the completions for:  
        new Thread(s<code assist here>
    
    will list some types (such as short) where no
    possible Java construction could require a type in this case.

-   If a type name needs to be qualified and it is not, no code 
    assist will be available for static members. For example:
        public String newMethod ( ) {
            ResourceBundle a = ResourceBundle.<code assist>

    does not produce a list but
    public String newMethod ( ) {
     java.util.ResourceBundle a = java.util.ResourceBundle.<code assist>

    will produce a list. The easiest way to produce a qualified name
    in this case (assuming you do not want to add this class/package to
    the import list) is to place the cursor before the period and
    activate code assist. Select the class name from the list and it 
    will be fully qualified for you automatically if required.

2.6.4 Parameter names are not shown for constructors

Parameter names are included in the parameter list pop-up that 
appears after the user selects a method. This does not after the
user selects a constructor.

2.6.5 No failure message in status bar

The user is not informed that code assist cannot find a suggestion 
or when code assist is not available.

2.7 UNIX

2.7.1 UNIX - font sizes

If the font selected from the Options dialog seems smaller or larger
than expected, a possible problem is the X font path.  From a
terminal window, examine the output of the "xdpyinfo" command to
determine the resolution of screen #0.  (The resolution will be
similar to: "91x92 dots per inch").  Then examine the current font
path by typing "xset q".  The font path will likely include "100dpi"
and "75dpi" directories.  The font path should be set such that the
directory with the resolution closest to the screen resolution comes
first.  (e.g. in the case of a screen resolution of 91x92, the 100dpi
directory should come first in the font path.)

The font path can be set with the "xset fp= Path,..." command,
followed by the "xset fp rehash" command.  (See the xset man page for
more information).  Note that font path will be reset when you logout
and back into the window manager. Therefore, to have it set each
time you login, add the xset command to either your window manager's
startup script, or shell startup or your login script.

2.7.2 Unix - readability of fonts

On AIX and Solaris, many fonts, especially non-English fonts, do not
scale well to small sizes.  Fonts will always look best if you pick a
size that has a defined bitmap version available at that size.  To
find the sizes of the bitmap versions of a font, use the "xlsfonts"
command.  Please refer to the xlsfonts man page for more information.

2.7.3 UNIX - Shared libraries

VisualAge for Java uses shared libraries which reside in the
ide/program directory.  On AIX the file extension of these files is
".a", on Solaris, it is ".so". You must ensure that your system is
properly configured before running VisualAge for Java, otherwise the
environment will not be able to locate these shared libraries.

The easiest way to ensure the libraries are found is to set the
environment variable LIBPATH (on AIX) or LD_LIBRARY_PATH (on Solaris)
to include the ide/program directory. For example, if you installed
VisualAge for Java in /usr/local/vajava, then add the directory
/usr/local/vajava/ide/program to your LD_LIBRARY_PATH.  How you do
this depends on which shell you are using (e.g. csh, ksh, etc.).
Please refer to the documentation for your shell for information
regarding setting environment variables.

You may choose to set this variable when you log in (i.e. in your
.cshrc, .profile, .login, or related startup file), or you may wish
to create a shell script to run VisualAge for Java which sets the
variable for you. For example,

#!/bin/sh
export LIBPATH=$LIBPATH:/usr/local/vajava/ide/program
cd /usr/local/vajava/ide/program
./ide

2.7.4 Solaris - Timestamps

Due to a problem in Solaris OS, dates on the locale en_CA 
are displayed in the following format DD//MM//YY. This 
problem does not appear to occur on en_US for Solaris. 
This problem may also occur with some other locales on Solaris.

2.7.5 Solaris - Accelerators

Accelerators are not supported on Solaris due to a degradation
of performance caused by the platform menu support under certain
usage patterns. This problem does not occur on any other platform,
including AIX. 

2.7.6 UNIX - Printing

VisualAge for Java uses the Bristol X printer libraries to support
printing. These libraries require Postscript printer support. 

2.7.7 AIX - Undo formatting

In some cases, it is possible to get a system error to occur when
Undo is performed after formatting the method source.

2.8 Japanese .jar files

If types and resources with Japanese names are exported to a .jar
file, the files within the .jar do not have Japanese names but rather
render the names as single byte characters.  The lack of support for
Japanese names is a current limitation of .jar files.

2.9 Japanese fonts 

2.9.1 Japanese fonts on OS/2

With some fonts on OS/2 Japanese, the very top of some characters may
not be visible.  For example, this has been seen with the Mincho 8 
point font for the "[" and "]" characters. However, the same Mincho 8 
point font has been observed to display correctly on other OS/2 machines.
This problem is machine and font specific. If this occurs another font
should be selected.

2.9.2 Japanese fonts in Options dialog

If the dialog font in the Options dialog is set to an English font
(for example, adobe helvetica) on a Japanese machine, the font will not
contain the necessary Japanese characters, so the Options dialog
itself becomes unreadable.  

Workaround: The Options dialog can still be used to set the dialog font
back to a Japanese font. The keyboard arrow keys may have to be used 
instead of the mouse to make selections when the Options dialog is in this state.

2.10 Miscellaneous
	
2.10.1 VisualAge for Java does not support Logitech scroll mouse

Any Logitech mice with drivers that re-map scrolling action to the mouse
will cause a system error to occur when it is used to scroll.

2.10.2 Projects that start with the same name as system projects

If you create a project that starts with the same name as one of the
system projects, VisualAge for Java will also consider this new 
project "locked", and will not allow you to add anything to it, 
remove things from it, or delete it.
    
Workaround: Do not create projects that start with the same name as
one of the system projects.

2.10.3 Changes are only reflected by manual refreshing

Problem: Changes made in the IDE do not appear until you manually refresh the IDE.

Workaround: Close the affected window and reopen it. If it is the only window open, 
then first open any other window such as the Console or Log window to avoid 
exiting VisualAge for Java completely when closing your window.

2.10.4 Changing locales in Windows (R)

If you change the system locale (Control Panel > Regional Settings) this change will not be reflected in the IDE unless you exit the IDE and restart it. Error message indicating 
that certain ICs can not be loaded may appear. You can ignore them. In addition, the 
next time the IDE is started will be slower than usual. 

Note that changing the system locale only changes the locale information seen by 
your Java programs. The IDE itself will continue displaying information in the 
language you chose during installation.

IMPORTANT: If you are using the EJB Development Environment, you cannot change
locales. If you do, your EJB code may contain errors.

2.10.5 Package conflicts occur if all features are loaded into
       the Workbench

Package conflicts will occurs if all of the VisualAge for Java
features are loaded into the Workbench. Error messages will appear,
indicating which packages are conflicting with one another. 
Workaround: You must remove one of the features that contains the conflicting package from your Workbench.
           

3.0 Hints and Tips
------------------

3.1 Caching

3.1.1 Setting up the cache

A disk cache and a memory cache are used by VisualAge for Java to
improve .class file access time for classes in the IDE.

The memory cache is used to keep a number of classes resident in
memory.  Every time the IDE is started, only the most frequently used
classes are maintained in the memory cache.  The memory cache
preferred size is user settable from the Options dialog on the
General / Cache page.  This value is the number of classes that will
be preserved when the IDE is started.  Any class found in the cache
can be almost instantaneously dynamically loaded.  A system with a
large amount of RAM can take advantage of a large memory cache; a
system with a limited amount of RAM should keep the memory cache
small - this will allow VisualAge to flush unused classes.

The disk cache is used to help fill the memory cache.  When an IDE
class must be loaded, the disk cache is searched first and if the
class is not there it is loaded from the repository.  The resulting
class is then put in the memory cache. The disk cache improves
performance, but does not have as significant an impact as the memory
cache. There are two variables that the developer can control on the
disk cache: (1) disk cache enable, and (2) disk cache preferred size.

To enable the disk cache, the directory named "cache" must exist as a
subdirectory of the ide directory.  There are at least two reasons
why you may not want to enable the disk cache.  First, systems with
limited available disk space should not use the disk cache.  Second,
if accessing the repository is almost as fast as accessing the cache
directory, the disk cache provides no additional value.  

The disk cache preferred size is the number of classes (files) that
will be preserved when the IDE is exited (or saved while remaining in
the IDE).  The most frequently used .class files are maintained in
the disk cache; all other files in the directory are deleted.

3.1.2 Clearing the caches

When a developer selects Clear the Memory Cache from the Options
dialog, the contents of the memory cache will be discarded the next
time the IDE is started.

When a developer selects Clear the Disk Cache from the Options
dialog, contents of the cache directory will be immediately
discarded.

4.0 Corrections to the documentation
------------------------------------

4.1 Debuggers

In the section "Choosing the right debugger for your program", it is
indicated that VisualAge for Java, Enterprise Edition comes with four 
debuggers: the integrated debugger, and three external debuggers:
the Workstation debugger, the AS/400 Cooperative debugger and the 
OS/390 debugger. This is incorrect. VisualAge for Java, 
Enterprise Edition comes with two debuggers: the integrated debugger
and the distributed debugger. The functionality of the
integrated debugger is the same as is outlined in the documentation. 
The distributed debugger performs all the tasks that the documentation
indicates the three external debuggers perform. 

Note: The reference in the subsection "The external debuggers" 
(which contains the documentation that now refers to the tasks the
distributed debugger can perform) to a "VisualAge for Java Accelerator" 
should be a reference to the High-Performance Compiler for Java.

4.2 IDE - Deploying code

In the Tasks help under "Exporting code", there is a "Deploying code" section. A table lists the jar files you must export with your deployed code. In the "e-Connectors" section, 2 connectors and their jar file names are missing. They are: 

Connector		Jar Files

CICS Connector		ctgclient, ctgserver
Encina Connector	delconn, delight11















 




