                                                  Release Notes
                                       Compaq Java(TM) Development Kit (JDK)
                                           Version 1.1.7B-10 Update
                                        for Compaq(R) Tru64(TM) UNIX(R)

  ------------------------------------------------------------------------

Contents

   * Introduction
   * New Features
   * Fixed Problems
   * Known Issues
   * Installation
        o Tru64 UNIX Patches
        o Installing the Kit
   * Using the JDK on Tru64 UNIX Systems
   * Prior Releases
   * Where to find Documentation and Other Information
        o Documentation
        o More Information
        o Problem Reporting

Introduction

Thank you for downloading the Java(TM) Development Kit (JDK) Version 1.1.7B-10 
for Compaq(R) Tru64(TM) UNIX(R) (formerly DIGITAL UNIX). These release notes 
contain installation instructions, known issues, new features, and other 
information specific to the Tru64 UNIX port of the JDK.

Because these release notes are provided in both .txt and .html format, the
URLs for hotlinks within this file are explicitly stated, or "installed
files" are referenced (see the Documentation section of these release
notes).

This kit includes all the functionality and bug fixes that are in the Sun
Microsystems JDK 1.1.7B, and passes all of the tests in the Sun Java
Compatibility Kit test suite (JCK 1.1.6A).

This kit can be used to develop and run Java applets and programs on
DIGITAL UNIX Versions 4.0D and higher, and Tru64 UNIX Version 4.0F and
higher. If you need to upgrade, check out features and pricing information
on the latest version of Tru64 UNIX
(http://www.systems.digital.com/DIcatalog/html/Digital-UNIX-V4.0-Operating-System-UNIX.html).

Use the java -version command to check the version of the JDK that you are
using. This kit installs JDK 1.1.7B-10. The JDK 1.1.7B-10 is an update to
JDK 1.1.7B-8. See the Fixed Problems section of these release notes for the
improvements provided by the JDK 1.1.7B-10.

For additional information about Compaq's Java products, please visit our
web site at http://www.compaq.com/java/.

IMPORTANT: Please make sure you understand the Copyright (copyright.txt
installed file) and License (license.txt installed file) information before
using this release.

New Features

The JDK Version 1.1.7B is primarily a bug-fix release. Changes made to the
JDK by Sun Microsystems since the first 1.1 beta release are in the file
named changes.txt in the installed JDK documentation.

This release also includes the following new features:

   * With JDK 1.1.7B, the amount of heap space that can be used for Java
     objects has been increased so that Java programs can take full
     advantage of 64-bit addressing on Alpha. With previous versions, the
     heap space used for Java objects was limited to 2,147,475,455 bytes.
     Note, however, that the java debugger (jdb) does not support heap
     sizes larger than 2,147,475,455.

     With JDK 1.1.7B, the way the JDK allocates the heap has changed:
     first, the JDK makes an initial check to insure that the maximum
     requested heap size, as specified by the -mx switch, can be allocated.
     Then the JDK allocates a minimum heap size and grows the heap
     incrementally to the maximum heap size.

     This means that the amount of heap space used by your java program
     depends on how much it actually needs. In previous JDK releases, the
     maximum requested heap size was allocated by the JDK at program
     startup, regardless of whether or not it was actually used by your
     Java program.

   * The same Java demos that Sun ships on Solaris and NT are available
     with our JDK 1.1.7B.

     These demos are included in the OSFJAVADOCxxx subset of the kit (where
     xxx represents a number such as 425, which corresponds to the version
     of the operating system). The demos are installed in:

        /usr/share/doclib/java/demo

Fixed Problems

This kit installs JDK Version 1.1.7B-10. The following sections provide
important information about problems fixed in current and previous releases
of the JDK Version 1.1.7.

Problems Fixed in JDK 1.1.7B-10

This kit is based on the JDK 1.1.7B_006 patch version from Sun
Microsystems, and is provided for your use on Tru64 UNIX systems. This kit
provides the following support and bug fixes:

   * Previously, when running a Java application, a segmentation violation
     or illegal instruction might occur. This problem has been fixed.

   * See sun_changes_1_1_7_006.txt for a list of problems fixed by Sun in
     the 1.1.7B_006 patch version.

Problems Fixed in JDK 1.1.7B-8

This kit is based on the JDK 1.1.7B_005 patch version from Sun
Microsystems, and is provided for your use on Tru64 UNIX systems. This kit
provides the following support and bug fixes:

   * This kit now provides font properties files to correctly support the
     display of Japanese and Chinese text.

   * Previously, Chinese input could not be entered for TextField
     components. The Sun bug numbers that are related to this problem are
     bug #4105612 and bug #4196573. This problem has been corrected.

   * Previously, when remotely displaying to a Tru64 UNIX machine, the
     components (such as JPEGs, GIFs, and Swing components) of a top-level
     window might not display properly. This problem has been fixed.

   * See the section titled, "Bugs Fixed in Patch JDK1.1.7B_005" in the
     file, sun_changes_1_1_7_006.txt, for a list of problems fixed by Sun in
     the 1.1.7B_005 patch version. These include the following date fixes
     for February 29 and other minor date problems:

        o Sun bug 4237348 - Correct documentation of the
          java.util.Date.parse() method for 2-digit years.

        o Sun bug 4254589 - Correct documentation for GregorianCalendar to
          specify behavior for leap year.

        o Sun bug 4182066 - Fix the parsing of negative years (-1 through
          -9) in the SimpleDateFormat() method.

        o Sun bug 4209272 - Correct problem with SimpleDateFormat() method
          when the lenient parsing mode is set to false to no longer throw
          an Exception for February 29.

        o Sun bug 4197699 - Fix an incorrect WEEK_OF_YEAR problem for the
          GregorianCalendar() method when rolling to the next year.

Problems Fixed in JDK 1.1.7B-7

In previous versions, a stack overflow could occur when two threads loaded
the same class at the same time. This problem has been fixed. The stack
overflow no longer occurs and the class is properly loaded.

Problems Fixed in JDK 1.1.7B-6

The JDK 1.1.7B-6 kit provides a modified /usr/lib/font.properties.ja file,
which correctly displays English text when the locale is set to Japanese.

Problems Fixed in JDK 1.1.7B-5

The JDK 1.1.7B-5 includes the following improvements over JDK 1.1.7B-2:

   * The amount of start-up time needed to generate secure random numbers
     has been significantly reduced.

   * A problem that prevented the removal of the last item on certain
     java.awt.List objects has been fixed. All items can now be
     successfully removed.

   * A bug that caused certain multi-threaded programs to occasionally fail
     with a segmentation violation while exiting has been fixed.

Known Issues

This kit passes the complete set of tests in the current version (1.1.6A)
of the JavaCompatibility Kit (JCK) made available by Sun to licensees.
However, we are currently aware of and/or investigating issues in the
following areas:

Font Point Sizes

The JDK 1.1.7B as implemented by Sun for Solaris and Win32 incorrectly
implements font point sizes. To correct this problem, our kit includes a
font properties file named /usr/lib/font.properties.truepointsize which
implements correct point sizes for Java fonts. To use this file, copy it to
/usr/lib/font.properties . If you then wish to revert to the incorrect font
sizes used by Sun, just delete /usr/lib/font.properties .

Retired Fonts

Starting with all releases of Compaq Tru64 UNIX after Version 4.0E, all
Adobe fonts under /usr/lib/X11/fonts/Type1Adobe will be retired and will no
longer ship with the operating system. For more details on this, please
refer to the section "Features and Interfaces Scheduled for Retirement" in
the Release Notes for the Tru64 UNIX operating system.

If your Java application uses the retired Type1Adobe outline fonts, it
might be affected. For example, when characters are displayed on the
screen, they might not scale as expected. If you customized your
font.properties file to use these outline fonts, you might need to modify
it to use alternative fonts that are available on your operating system. No
replacements are being provided by the operating system. However, a smaller
set of outline fonts is still available in /usr/lib/X11/fonts/Type1 and
/usr/lib/X11/fonts/Speedo for your use.

Installation

The following sections describe how to install the JDK 1.1.7B kit on your
Tru64 UNIX system.

Tru64 UNIX Patches

This kit is available for DIGITAL UNIX Version 4.0D and higher.

Before installing and using this kit, you must first obtain and install any
necessary operating system patches as described on the Patch Installation
Page for Tru64 UNIX
(http://www.digital.com/java/download/jdk_du/dupatches.html).

Installing the Kit

Perform the following steps as superuser:

  1. If you installed an earlier release of the Java Development Kit, use
     the setld command to delete it. On DIGITAL UNIX V4.0D for example, the
     OSFJAVA425 subset is automatically installed and must be deinstalled
     before the upgrade:

       a. Use the setld -i command to determine which Java subsets are
          installed:

             setld -i | grep JAVA | grep installed

       b. To delete all of the old Java subsets found, enter the setld -d
          command. For example:

             setld -d OSFJAVA425 OSFJAVADEV425 OSFJAVADOC425   (V4.0D)
             setld -d OSFJAVA410 OSFJAVADEV410 OSFJAVADOC410   (V4.0B)
             setld -d OSFJAVA405 OSFJAVADEV405 OSFJAVADOC405   (V4.0A)

  2. Untar one of the following binary kits into a scratch directory:

         java117_b10_v40d.tar   (V4.0D)
         java117_b10_v40e.tar   (V4.0E)
         java117_b10_v40f.tar   (V4.0F)
         java117_b10_v40g.tar   (V4.0G)
         java117_b10_v50.tar    (V5.0)
         java117_b10_v50a.tar   (V5.0A)

     The following example assumes you downloaded a V4.0D kit to /tmp/java:

        cd /tmp/java
        tar xf /tmp/java/java117_b10_v40d.tar

     The scratch directory now contains the kit plus the following file:

        release_notes.txt - these release notes

  3. Use the setld command to load from the scratch directory:

        setld -l /tmp/java

There are three subsets:

   * The mandatory subset, which provides support for running Java programs
     and applets (OSFJAVAxxx)
   * The development environment, which allows you to compile and debug
     Java code (OSFJAVADEVxxx)
   * A documentation subset (OSFJAVADOCxxx)

where xxx represents a number such as 425, which corresponds to the version
of the operating system.

We recommend that you install all three subsets if you intend to use the
JDK in a development capacity.

Once you have installed the desired subsets, you can delete the scratch
directory.

CLASSPATH, LD_LIBRARY_PATH, and other important environment variables are
set to appropriate defaults by a shell wrapper. These can be overridden by
the user.

Using the JDK on Tru64 UNIX Systems

The following sections provide some useful tips for using the JDK on Tru64
UNIX systems.

Controlling Heap Size

The initial heap size (-ms) and maximum heap size (-mx) command-line
options control the size of the Java heap. The default values for these
are:

initial heap size = 1048576 bytes
maximum heap size = 16777216 bytes

The Java heap, by default, is allocated at address 0x10000. The maximum
heap size prior to JDK 1.1.7B was limited to 2147475455 by its underlying
int type. (This value is slightly less than INT_MAX because of a rounding
calculation applied to the user-specified value.) Starting with JDK 1.1.7B,
the -mx and -ms command-line option values are treated as longs, allowing
much larger heaps.

Example:

java -mx40000m MyApp

Heaps larger than 2147475455 are allocated at address 0x20000000000. Note
that there may be a noticeable start-up delay in initializing the heap's
internal data structures if you specify a very large initial heap value
(for example, -ms4000m). You can avoid this by using a smaller initial heap
size. This effectively spreads the cost of expanding the heap structures
over the execution of the application.

For JNI users who create JVM's from native code, the minHeapSize and
maxHeapSize fields in the JDK1_1InitArgs structure remain as jints.
However, you can use the macros SET_MIN_HEAP_SIZE and SET_MAX_HEAP_SIZE,
defined in jni.h, to specify values for heaps larger than 2147475455.
Please see the comments in the file jni.h for more information.

Your system must be properly set up to allow very large heaps. The garbage
collector initialization code will try to allocate the maximum sized heap.
If this fails, it will continually apply a "backoff" factor of .75 and will
try again. Heap allocation succeeds if the heap size successfully allocated
is not less than the -ms value. Thus, it may appear as if you got the
maximum heap size you asked for when you did not.

To avoid excessive page faulting, consider the amount of physical memory
available to your process when choosing the maximum heap size. Garbage
collection tends to walk through the entire heap, so you'll need at least
enough to insure that none of the heap is paged out.

For more information on system tuning and resource limits, see the
following:

   * Tru64 UNIX System Configuration and Tuning, specifically the section
     Increasing the Available Address Space
   * C shell commands limit and unlimit, specifically addressspace
   * manpages setrlimit(2) and getrlimit(2)

Controlling Stack Size

By default, the maximum native stack size for Java threads on our UNIX 4.0
systems is about 128K bytes. You can increase or decrease the maximum
native stack size using the -ssn command-line switch. Note that decreasing
the native thread stack size can save memory but can also result in
segmentation violation errors or other problems if the native thread stacks
are too small.

Important JNI Information

If you are using JNI, your native C/C++ code accessed via JNI needs to be
compiled and linked using the C/C++ -pthread flag.

Prior Releases

Features of the JDK 1.1.6 Release

The JDK 1.1.6 release fixes a garbage collector bug in previous JDK 1.1.n
releases that could lead to segmentation faults when running Java programs.

The -taso option is supported for JRE. See the next section for information
on the -taso option.

Features of the JDK 1.1.3 Release

The -taso Option

The JDK 1.1.3 release for DIGITAL UNIX supports the -taso option. This
option causes all virtual machine addresses to be mapped into 31-bit
address space. Specify the -taso option if your Java program calls native
methods that were built with 32-bit pointers. This includes, for example,
native methods that were compiled with the cc options -xtaso and
-xtaso_short.

To use the java -taso option:

    java -taso my_class_file
 or
    java_g -taso my_class_file

To use -taso with appletviewer:

    appletviewer -J-taso my_class_file

Features of the JDK 1.1.1 Release

Audio Support

The JDK 1.1.1 release contains support for Java's Audio classes.

Features of the JDK 1.1 Release

POSIX Threads

The JDK 1.1 for DIGITAL UNIX is implemented using POSIX threads. This
allows different Java threads in your application to run on different
processors, provided that you have a multi-processor machine. It also means
that your Java application will run properly when linked with native APIs
(such as DCE) that also are implemented using POSIX threads.

To install and use this kit you must first obtain and install a patch for
your UNIX system. See the Java web page (http://www.compaq.com/java/) for
details.

Then, copy across and untar the JDK binary kit, and install it as you would
any setld kit. The environment variable CLASSPATH is set to an appropriate
default by a shell wrapper. You can override this default (see the
description of classpath) in the "Tools" section of the installed
documentation.

Just-in-Time Compiler

The JDK 1.1 Field-Test release contains a Just-in-Time (JIT) compiler to
substantially increase run-time performance. The JIT compiler provides
on-the-fly compilation of your application's Java byte-codes and runtime
calls into native Alpha machine code. This results in significantly faster
execution of your Java application compared with running it using the Java
interpreter, while maintaining the same behavior.

The JIT compiler runs by default when you enter the java command. If you
want to run the interpreter when you enter the java command, use the -nojit
option. For example:

   java -nojit ...

The java debugger runs the interpreter. Running the java debugger with the
JIT compiler is not supported.

The JIT compiler runs by default when you run appletviewer. To run
appletviewer using the interpreter, use the -J-nojit option. For example:

appletviewer -J-nojit ...

Where to Find Documentation and Other Information

Documentation

If the optional documentation subset (OSFJAVADOCxxx) is installed, then the
JDK documentation tree begins at the following location on the system where
the JDK is installed:

   /usr/share/doclib/java/index.html

The installed documentation is in html format and includes this release
notes file (which describes JDK information specific to Tru64 UNIX systems)
and a readme.txt file (which contains general information on using Java).
It also includes the Java Language Specification, API reference
documentation, and tools reference pages.

You can browse the JDK documentation we provide with our kit on our Java
web site at URL: http://www.digital.com/java/documentation/index.html.

There is also a java manpage that describes the java command and points to
the above installed documentation.

More Information

For more information on this release, refer to the changes.txt file in the
installed JDK documentation, and our Frequently Asked Questions (FAQ) web
page (http://www.digital.com/java/faq/index.html).

If you are new to the Java programming language, you will want to browse or
download the Java Tutorial at: http://java.sun.com/docs/books/tutorial/.

Problem Reporting

Compaq delivers the JDK and Java(TM) 2 SDK as part of the Tru64 UNIX operating 
system and for use with it. The JDK and Java 2 SDK are licensed to customers and 
supported on the same basis. Customers with support contracts should seek 
support through local customer support centers for problems encountered in using 
the JDK and Java 2 SDK.

Customers who do not have support contracts are encouraged to continue to
mail problem reports, using the bugreport.txt problem report template
included in the kit or on our web site at
http://www.digital.com/java/contact/bugreport.txt, to
java-bugs@zko.dec.com. These reports will certainly be used as a source of
input for fixing problems for new releases. However, we will only be able
to give these reports individual attention and take remedial action on a
best-effort basis.

If you have questions not addressed by our FAQs, suggestions, or comments,
please send mail to java-info@zko.dec.com.

------------------------------------------------------------------------

Copyright 2000 Compaq Computer Corporation.
Compaq Registered in U.S. Patent and Trademark Office.
Java and all Java-based marks are trademarks or registered trademarks of
Sun Microsystems, Inc.
All other product names mentioned herein may be trademarks or registered
trademarks of their respective companies.
Compaq shall not be liable for technical or editorial errors or omissions
contained herein. The information in this document is subject to change
without notice.
