HP-UX Java™ JDK, JRE, and Plug-In Version 5.0.13 Release Notes


» Back to HP-UX Java™ JDK, JRE, and Plug-In 5.0.x Release Notes

JDK, JRE, and Plug-In 5.0.13 for HP-UX PA-RISC and HP Integrity Systems
for the Java™ Platform

PLEASE NOTE:
Known Issue: Security Bulletin 103112

This note corrects a previously documented issue with HP-UX JVM and Security Bulletin 103112. HP is providing the Java version 5.0.13 for both HP-UX Integrity and PA-RISC releases to include the fix for SUN Alert 103112. The previous Java version (5.0.10) includes the fix for SUN Alert 103112 for HP 9000 PA-RISC only.

Contents

» Overview
» Features
 » HotSpot 5.0.13 Server JVM

» Installation
 » Patches
 » HP-UX system requirements
 » Web browser requirements
 » Installation instructions
 » File structure JDK/JRE
 » File structure Runtime Plugin

» Usage documentation

 » JDK/JRE Usage
 » Removing support for unwanted architectures in the JRE
 » Using WDB to examine backtraces in Java thread stacks
 » Support for C++ applications built with -AA and -AP options (PA-RISC)
 » Using Java 2 JNI on HP-UX
 » Garbage collectors: Parallel, Concurrent mark, and Sweep
 » Allocating physical memory and swap in the Java heap
 » Asian TrueType fonts and Asian locales
 » Date/Time methods defaults
 » Profiling
 » Closing a socket (PA-RISC only)
 » Compatibility with previous releases
 » Java Cryptography Extension (JCE) policy files

 » Configuring the Runtime Plug-In

 » Java Webstart Technology Usage
 » Upgrading from a previous version
 » Additional Java Web Start documentation

 » Additional HP and Sun documentation

» Problem fixes and Known issues
 » Limitation when using jconsole (11i HP Integrity and HP9000 PA-RISC)
 » Supplementary Characters display as empty boxes (11i HP Integrity and HP9000 PA-RISC)
 » Initializing a JVM instance with JNI_CreateJavaVM on HP Integrity
 » Using compiler safe points (HP-UX 11.11 (11i v1) PA-RISC)
 » shl_load HotSpot libjvm problem due to TLS (HP-UX PA-RISC only)
 » Using Linker option +noenvvar and +compat on HP Integrity and PA-64 Systems
 » Running Java with setuid or setgid on HP Integrity and PA-RISC
 » Running Aries HP Integrity (Itanium) emulation on PA2.0
 » Java WebStart
 » Using -XX:+UseTimedWait to correct kernel application hang on Itanium
 » Serial Version UID Mismatch (ISV Issue)

Overview

JDK, JRE, and Plug-In Version 5.0.13 for HP-UX for the Java 2 Platform Standard Edition provides the tools for developing and deploying Java applications on HP-UX 11i HP Integrity and HP 9000 PA-RISC systems. Please see "HP-UX system requirements" for HP-UX releases that are not supported.

We no longer provide release notes in the software kit; therefore, this online version is your source of information for this release. This web version will have the most up-to-date information, especially regarding known defects, so you may want to check occassionally for the latest information. Please note that beginning with 1.4.2.08 the Runtime Plug-in and Java Web Start release notes are included with these JDK/JRE release notes.

There are two principal products in the Java 2 Platform Standard Edition family. For 5.0, Sun Microsystems' has reverted to the terminology JDK and JRE.

  • J2SE Runtime Environment (JRE)
    The JRE provides the libraries, HotSpot Java virtual machine, and other components necessary for you to execute a Java application. You may include the runtime environment with your Java applications as long as you adhere to the HP software license agreement and supplemental restrictions provided in the LICENSE file. You must include all of the runtime environment files provided by HP. The JRE is provided as a separate product. In addition, it is included in the JDK download package. The Runtime Plug-In, as well as Java WebStart technology, is now being packaged with the JRE.
  • J2SE Development Kit (JDK)
    The JDK is a superset of the JRE, and includes additional tools such as compilers and debuggers that are necessary for developing applets and applications. The JDK download package includes the JRE.

Features

The Java 2 Standard Edition Version 5.0 is a major feature release. It includes many new features, enhancements, and updates, yet preserves backward compatibility.

The latest JDK 5.0 release, version 5.0.13, is designed to take advantage of more efficient memory management algorithms being implemented in HP-UX.

Here is a brief list of some of the new features in 5.0:

  • New language updates: Metadata, Generics, Enumerated types, Autoboxing of primitive types

  • New JVM Monitoring and Management API

  • Improved out-of-box performance

  • New (but compatible) default Java look and feel

For a complete list of features introduced in 5.0 since the previous major release (1.4), go to Summary of New Features and Enhancements. In addition to new features, HP's JDK/JRE 5.0.13 includes the following:

  • HotSpot 5.0.13 server JVM

  • Runtime Plug-in for the Mozilla browser

  • Performance enhancements and defects fixed in 5.0.13

  • 32-bit or 64-bit mode on PA-RISC 9000 and HP Integrity systems

HotSpot 5.0.13 Server JVM

All -X options supported in earlier HotSpot JVMs are included in HotSpot 5.0.13. Performance, tool support, tool enhancements, and features are documented at http://java.sun.com/j2se/1.5.0/docs/index.html.

The HotSpot 5.0.13 Server JVM for HP-UX 11i for HP Integrity and HP 9000 PA-RISC systems is suitable for both client and server workloads. We invoke the Server VM with configuration options that suit client-side applications.

The JDK 5.0.13 HotSpot 5.0.13 Edition supports the APIs core to the Java 2 platform, among them Remote Method Invocation (RMI), nonblocking i/o APIs, the Collections Framework, and IPV6.
The Java 2 Platform version 5.0 API Specification is available at http://java.sun.com/j2se/1.5.0/docs/api/

You may also find the following article useful, "J2SE 1.5 in a Nutshell" by Calvin Austin at http://java.sun.com/developer/technicalArticles/releases/j2se15/

Here is a partial list of the functionality that the HotSpot 5.0.13 Server JVM provides:

  • Improved performance

  • Java Platform Debugger Architecture (JPDA) Architecture
    The JPDA for HP-UX is similar to the Solaris implementation.
    (excerpts from Sun Microsystems' documentation)
    JPDA is a multi-tiered debugging architecture that allows tools developers to easily create debugger applications which run portably across platforms, virtual machine (VM) implementations and SDK versions. The JPDA consists of three layers:

    • JVMTI - Java VM Tool Interface:
      A new interface in J2SE 1.5 that replaces JVMDI. It defines the debugging services a VM provides.

    • JDWP - Java Debug Wire Protocol
      Defines the communication between debuggee and debugger processes.

    • JDI - Java Debug Interface
      Defines a high-level Java language interface which tool developers can easily use to write remote debugger applications.

    For usage information, refer to Sun VM Invocation Options at http://java.sun.com/j2se/1.5.0/docs/guide/jpda/architecture.html

  • Nonblocking I/O APIs
    Introduced in 1.4.1, they are now part of the Java system libraries under the package java.nio. The previous implementation of I/O multiplexing using the class com.hp.io.Poll is still being included for backward compatibility. We encourage you to upgrade and use the features provided through the new java.nio package.

  • IPv6 support on PA-RISC and Itanium
    Please see IPv6 (Internet Protocol version 6) Support in these release notes for usage information.

  • HP debugger WDB support
    Use HP's debugger WDB 3.0.01 or later to examine backtraces containing mixed language frames (Java and C/C++) in Java thread stacks. This simplifies debugging the VM and Java mixed-language applications. For more information, see "Using WDB to Examine Backtraces in Java Thread Stacks" in the programmer's guide at: Debugging

  • -Xeprof option: Generates profile data for HPjmeter. Zero preparation profiling is a new feature of the JDK/JRE 5.0, beginning with version 5.0.04.
    For syntax and use, refer to the HP-UX Programmer's Guide for Java 2 at HotSpot Technology Tools and Commands#-Xeprof

  • Large heap sizes
    Heaps up to 3.5GB are supported on HP-UX 11.23 and 11.31 (11i v2 and v3) (no patches required), and up to 3GB on HP-UX 11.11 PA (11i v1) with the installation of patches. Refer to the sections on expanding memory in the HP-UX Programmer's Guide for Java 2 at: Expanding Memory

  • 64-bit mode
    Supported by using the option -d64. For further information, refer to the HP-UX Programmer's Guide for Java 2 at HotSpot Technology Tools and Commands#-d64

  • The -XX:+HeapDump option can be used to observe memory allocation in a running Java application by taking snapshots of the heap over time.
    Using the _JAVA_HEAPDUMP=1 environment variable allows memory snapshots to be taken without modifying the java command line. The HeapDump functionality is available starting with SDK 1.4.2.10 and JDK 1.5.0.03. For further information, refer to the HP-UX Programmer's Guide for Java 2 at HotSpot Technology Tools and Commands#-XX:+HeapDump

  • -XX:+HeapDumpOnOutOfMemoryError
    The HeapDumpOnOutOfMemoryError command line option causes the JVM to dump a snapshot of the Java heap when an Out Of Memory error condition has been reached. The HeapDumpOnOutOfMemoryError functionality is available with SDK 1.4.2.11 and JDK 1.5.0.04 and higher. For further information, refer to the HP-UX Programmer's Guide for Java 2 at HotSpot Technology Tools and Commands#-XX:+HeapDumpOnOutOfMemoryError

Installation

Patches

*** IMPORTANT NOTE for PA-RISC Customers! ***

The following networking patch must be installed for HP-UX 11.11 (11i v1) PA-RISC. The patch is not required for Itanium, or for other PA-RISC systems.

  • HP-UX 11.11 (11i v1) PA-RISC Required patch PHNE_29887 (or its superseded patch) solves socket problems that may cause hangs.
  • The pthreads patch shown below must be installed for HP-UX 11.11 (11i v1) PA-RISC. The patch is not required for HP Integrity systems.

  • HP-UX 11.11 (11i v1) PA-RISC Required patch PHCO_29960 (or its superseded patch)
  • To determine whether these patches have been installed on your machine, log in as root and check your machine with:

    /usr/sbin/swlist -l product

    The list of required patches changes frequently and may include patches other than those shown above. To ensure that you have installed all of the required and recommended patches needed for Java, please visit our Java Required Patches webpage at Patch Information

    HP-UX System requirements

    HP Integrity servers: All HP Integrity servers running HP-UX 11i v2 or v3 (11.23 or 11.31) are supported. Note that HP-UX 11i v.1.5 11.20 and 11iv.1.6 11.22 are not supported on Java 5.0. Starting with 5.0.02, the following error will be produced:

    /usr/lib/hpux32/dld.so: Unsatisfied data
    symbol '__memmove_ver' in load module '/proj/images/
    java/1.5.0/j150h.tot.build-Wed/opt/java1.5/bin/IA64N/java'

    Refer to the following website for current HP Integrity servers: HP Integrity Servers.

    HP PA-RISC 9000 systems: HP Superdome, rp8420, rp7400, rp4440, and PA-based workstations running HP-UX 11i v1, v2, or v3 (11.11, 11.23, or 11.31) are supported. The minimum system for running Java 5.0 applications is a PA-RISC 2.0 with HP-UX 11.11. Note that Java 5.0 applications are not supported on HP-UX 11.0 or on PA-RISC 1.1 systems.

    Web browser requirements

    The only web browser supported for Java 5.0 Plug-in is Mozilla for HP-UX version 1.6.0.00 or later. Netscape is not supported.

    Installation instructions

    You need approximately 670MB of disk space to download and install the JDK which includes the JRE. The JRE alone, which includes the Runtime Plug-in and Java WebStart technology, needs approximately 640MB.

    Note:   When downloading a .depot file, some browsers don't recognize the .depot format and treat the file as a text file.  If this happens, right-click the Download Directly >> button (on the Software download confirmation window) and select Save Target As....

    To verify that the file downloaded correctly you need to use MD5 Secure Checksum (md5sum).   You can download MD5 Secure Checksum at HP-UX MD5 Secure Checksum if you do not already have this utility.   To verify your download with MD5 Secure Checksum, at the UNIX prompt, execute the command:
    md5sum <filename>
    If the file downloaded correctly, the checksum number for the file you downloaded should match the MD5 Checksum number given for that file.

    Note that beginning with 5.0, HP is providing the Runtime Plug-in as part of the JRE depot. When you install the JRE, the Plug-in is installed automatically.

    The HP-UX JDK. JRE and Plug-in for the Java 2 Platform install under /opt/java1.5. As root user, use the following SD-UX swinstall command to install the software:

    /usr/sbin/swinstall

    This command will lead you through the installation. Change Source Depot Type to "Local Directory" and Source Depot Path to /tmp/<filename>. (If you used a directory other than /tmp in the previous step, replace /tmp with that directory name.) We recommend you select the "Reinstall filesets" and unselect the "Mount filesystems" option from the options menu.

    WARNING: Do not unarchive rt.jar, charsets.jar, jpda.jar, tools.jar, jce.jar, and jsse.jar. These files are needed by the SDK tools and the runtime environment.

    Add the directory /opt/java1.5/bin to your PATH.

    For information on setting important system parameters required for correct execution of Java programs refer to the Programmer's Guide which can be found at Programmer's Guide for Java™ 2.

    Installing into an alternate location

    To install the software into an alternate location, add @/<alternatedirectory> to the end of the swinstall line, and add the alternate directory to your PATH.

    For example:

    /usr/sbin/swinstall -s <download> \* @/<alternatedirectory>

    SD-UX prepends <alternatedirectory> to the default product path. Java will therefore install in /alternatedirectory/opt/java1.5.

    If you want your Java home directory in <alternatedirectory> without the /opt/java1.5 directories, you need to install into a temporary directory, and then move the directories to where you want them.

    For example:

    swinstall -s <download> \* @/<temporarydirectory>
    mv <temporarydirectory>/opt/java*/* <finalalternatedirectory >

    Or you can install and link to the directories.

    For example:

    swinstall -s <download> \* @/<actualdirectory>
    ln -s <finalalternatedirectory> /<actualdirectory>/opt/java*

    You will notice that the two files, <alternatedirectory>/etc and <alternatedirectory>/var are created. These may be purged, because they do not apply to a product installed in an alternate location.

    File structure JDK

    The following diagram below displays an abbreviated form of the file structure:

    
    java1.5
    
         |	 
      ___|________________________________________________ 
       |        |        |            |           |         
    
      bin      lib      jre          demo      include  
       |        |       javaws files*
    
      java    tools.jar  | 
    
      javac   dt.jar     |
    
      javadoc ir.idl     |
    
      javah   orb.idl    |
    
      javap              | 
    
      jdb                |
    
                      ___|_____________________________  
                         |                             |
    
                        bin                           lib
    
                         |                             |
    
    _____________________|__________________________   | 
    
       |      |                  |         |      |    |
    java PA_RISC2           PA_RISC2.0W  IA64N  IA64W  |  
    
                                                       |
                                                       |
                 __________________________________________________________________
                 |      |    |       |                    |           |        | 
               rt.jar  zi security PA_RISC2          PA_RISC2.0W    IA64N    IA64W 
            charsets.jar             |____________________|___________|________|___ 	
              jce.jar                |                    |           |        |      
              jsse.jar            server                server      server   server 
    
    

    The tools are under opt/java5/bin and the libraries are under opt/java5/lib. The tools.jar file contains the classes for supporting the tools and utilities. The file dt.jar contains the DesignTime archive of BeanInfo files.

    The jre directory includes the Java runtime environment. The file rt.jar contains the runtime classes for the core API. The file charsets.jar contains the internationalization and localization classes and files. The security directory contains security management files.

    The shared libraries used by the HP-UX platform are contained in the following directories:

    PA_RISC2.0 PA-RISC 2.0 32-bit
    PA_RISC2.0W PA-RISC 2.0 64-bit
    IA64N Itanium 2 32-bit
    IA64W Itanium 2 64-bit

    The include directory contains the header files for supporting JNI and JVMDI.

    File structure Runtime Plug-in

    The Runtime Plug-in requires the shared library(ies) loaded by the Mozilla browser, the remaining Runtime Plug-in files, and the JRE to be located in the following fixed relative position:

    /opt/java1.5/jre Runtime plug-in and RTE files
    /opt/java1.5/jre/plugin/PA_RISC2.0/mozilla Runtime Plug-in shared libraries loaded by Mozilla browser
    /opt/java1.5/jre/plugin/IA64N/Mozilla IPF Runtime Plug-in shared libraries loaded by Mozilla browser

    If the JPI is installed in the default location, /opt/java1.5/jre, then the following links are created during install to allow the browser to locate the Runtime Plug-in shared library:

    PA-RISC installation:

    
    /opt/mozilla/plugins/libjavaplugin_oji.sl -> \ 
    
        /opt/java1.5/jre/plugin/PA_RISC2.0/mozilla/libjavaplugin_oji.sl 
    

    HP Integrity installation:

    
    /opt/mozilla/plugins/libjavaplugin_oji.sl -> \ 
        /opt/java1.5/jre/plugin/IA64N/mozilla/libjavaplugin_oji.sl
    
    

    If the Runtime Plugin is installed in a non-default location, you or the system administrator needs to create similar links in order to enable Mozilla to find the Runtime Plug-in. Or you may use the environment variable MOZ_PLUGIN_PATH for Mozilla, which is described in the section below regarding configuration.

    Information on Mozilla for HP-UX is at Mozilla Web Browser for HP-UX Downloads and Documentation. Additional Plug-in documentation and FAQs can be found at http://java.sun.com/products/plugin.
     

    Usage documentation

    NOTE: Some of the usage documentation previously included in these release notes has been moved to the Java for HP-UX Programmer's Guide at Programmer's Guide for Java™ 2

    The Java for HP-UX Programmer's Guide at Programmer's Guide for Java™ 2 contains usage documentation for developers. There you will find information on HotSpot options, HP-specific optons and features, suggestions and examples for allocating memory, how to use WDB to examine backtraces in Java threads, code examples for using Java Native Interface, and much more.

    Another change is that beginning with 5.0, we are combining the JDK, JRE, Runtime Plug-in, and Java WebStart technology release notes in this document.

    JDK/JRE Usage

    Removing support for unwanted architectures in the JRE

    Under the JRE license agreement, partners who redistribute the JRE may remove support for unwanted architectures. Functional components may NOT be removed under any circumstances. You may remove support for unwanted architectures as follows:

    The following commands assume that the JRE has been installed in the standard location, i.e. /opt/java1.5/.

    • On PA-RISC, to remove 64-bit support:

    /usr/sbin/swremove Jre15.JRE15-PA20W Jre15.JRE15-PA20W-HS

    • On HP Integrity (Itanium), to remove 64-bit support:

    /usr/sbin/swremove Jre15.JRE15-IPF64 Jre15.JRE15-IPF64-HS

    • On HP Integrity (Itanium), PA filesets are not installed by default, but if for some reason you have installed them, they can be removed with:
      
      /usr/sbin/swremove Jre15.JRE15-PA20 Jre15.JRE15-PA20-HS \
      
           Jre15.JRE15-PA20W Jre15.JRE15-PA20W-HS
      
      

    Using WDB to examine backtraces in Java thread stacks

    You can now use HP's debugger WDB 3.0.01 or later (the GNU Debugger GDB) to examine backtraces containing mixed language frames (Java and C/C++) in Java thread stacks. This will simplify debugging the VM and Java mixed-language applications. Set the environment variable GDB_JAVA_UNWINDLIB to the path name of the Java Unwind Shared Library libjunwind.sl (PA), which is in the SDK.

    The default location of the Java Unwind Library in the SDK is:

    /opt/java1.5/jre/lib/PA_RISC/server/libjunwind.sl
    /opt/java1.5/jre/lib/PA_RISC2.0/server/libjunwind.sl
    /opt/java1.5/jre/lib/PA_RISC2.0W/server/libjunwind.sl
    /opt/java1.5/jre/lib/IA64N/server/libjunwind.so
    /opt/java1.5/jre/lib/IA64W/server/libjunwind.so

    Here are a few examples. In ksh, you would set the environment variable like this:

    For 64-bit PA2.0 machines:

    export export GDB_JAVA_UNWINDLIB=/opt/java1.5/jre/lib/\
    PA_RISC2.0W/server/libjunwind.sl

    For 64-bit HP Integrity 2 machines:

    export GDB_JAVA_UNWINDLIB=/opt/java1.5/jre/lib/\
    IA64W/server/libjunwind.so

    If you installed the SDK in a location other than the default, you would substitute the non-default location for "/opt/java1.5" in the above commands. Then use WDB as usual to debug your Java applications or core files. See the tutorial slides on Debugging at Performance Tuning, Tutorials, & Training for help on how to use the new Java stack unwind functionality.

    The Java for HP-UX Programmer's Guide at Programmer's Guide for Java™ 2 contains usage documentation for developers. There you will find information on HotSpot options, HP-specific optons and features, suggestions and examples for allocating memory, how to use WDB to examine backtraces in Java threads, code examples for using Java Native Interface, and much more.

    Please refer also to Sun Microsystems' Java HotSpot VM Options at http://java.sun.com/docs/hotspot/VMOptions.html.

    Support for C++ applications built with -AA and -AP options (PA-RISC)

    Java supports the -AA and -AP options to build your C++ product. On HP Itanium systems, the C++ runtime libraries support -AA and -AP by default. On HP-UX 11.0 or 11.11 PA-RISC, if you are using the ANSI Standard C++ runtime (-AA) option in an application that loads Java, you need to use the -AA version of libjvm and libfontmanager. Note that these libraries are provided as a separate download on the same page from where you download the JDK and JRE, starting at this webpage:
    JDK, JRE, and Plug-In 5.0.x Downloads and Documentation

    These are the Standard C++ Runtime version of these libraries:

    ./jre/lib/PA_RISC2.0/libjvm_v2.sl
    ./jre/lib/PA_RISC2.0W/libjvm_v2.sl
    ./jre/lib/PA_RISC2.0/libfontmanager_v2.sl
    ./jre/lib/PA_RISC2.0W/libfontmanager_v2.sl

    The native application must be linked with, or must dynamically load these versions of the Java libraries if your C++ application is compiled using -AA.

    The Standard C++ version of the JVM libraries are supported for PA_RISC2.0 and PA_RISC2.0W architectures only.

    If the JVM is invoked through the standard Java driver, then use the -V2 option to use the Standard C++ runtime.
    For example:

    java -V2 <javaprog>

    Using Java 2 JNI on HP-UX

    For C and C++ applications, it is important to link with the -mt (multithread) option if the application calls a Java VM. Both executables and shared libraries must be linked with -mt. Use of -mt must be consistent during both compilation and linking. For more information, refer to the Native (non-Java) calling Java methods section in the Programmer's Guide.

    If you embed libjvm in a 32-bit native application and wish to use a large Java heap, you must link with the -N option. Refer to the Expanding heap size in native applications on PA-RISC HP-UX 11.11 and later releases and Expanding heap size in native applications on Integrity HP-UX 11.23 and later releases for more information.

    Garbage collectors: Parallel, Concurrent mark, and Sweep

    For a summary of changes in the garbage collector for version 5.0 refer to http://java.sun.com/j2se/1.5.0/docs/guide/vm/gc-ergonomics.html The parallel collector
    (-XX:+UseParallelGC) has been enhanced in 5.0 to monitor and adapt to the memory needs of the application in order to eliminate the need to tune command-line options to achieve the best performance.

    Allocating physical memory and swap in the Java heap

    Since 1.4.1.05, the method of allocating physical memory and swap within the Java heap has changed. As a result, you are likely to see higher RSS (resident set size) memory usage when monitoring your Java processes with Glance or other tools, or your application startup may be slightly slower.

    For more details on why this occurs and for examples of using key command line options, see: Allocating Physical Memory and Swap in the Java Heap.

    Asian TrueType fonts and Asian locales

    Asian Locales are supported by HP's JDK 5.0.13 with TrueType fonts. For more details, please refer to HP-UX Fonts and the Java™ Runtime Environment.

    Date/Time methods defaults

    The HotSpot JVM uses the gettimeofday() system call to obtain date and time information. For performance reasons a new mechanism that uses the number of CPU ticks since the application started is used to calculate the current time. As a result, changes to the system date or time using date(1), adjtime(2) or time synchronization utilities such as ntp will not be reflected in the date and time that the Java program returns, until the process is restarted.

    If your application requires that system time changes are immediately reflected, you can use the
    -XX:+UseGetTimeOfDay option to tell the JVM to use the gettimeofday call instead of the new, lightweight mechanism. However you may notice a drop in performance.

    Profiling

    Currently a SIGUSR2 handler to support -Xeprof profiling and a SIGPROF handler to support future profiling capability are installed automatically. This may cause incompatibilities with other native code or profiling tools which use SIGUSR2 or SIGPROF. You can turn off both handlers by using the following option -XX:+ReduceSignalUsage

    However be aware that using this option also turns off the SIGQUIT handler, and you therefore will not be able to get a Java stack trace.

    You can also turn off the SIGUSR2 handler only by using the following option -Xeprof:off. In this case you will retain the ability to get a Java stack trace using SIGQUIT. For more information about -Xeprof profiling, see the HP-UX Programmer's Guide for Java 2 at HotSpot Technology Tools and Commands

    Closing a socket (PA-RISC only)

    Because of changes to the mechanism by which a socket is closed in the VM, you no longer need to use the -XdoCloseWithReadPending option we recommended in earlier releases. For further information, refer to the HP-UX Programmer's Guide at HotSpot Technology Tools and Commands#socket

    Compatibility with previous releases

    Sun Microsystems maintains upward compatibility, therefore an application written for a 1.4 JVM will run on a 5.0 JVM. Downward compatibility is generally not supported, because new API's are introduced that cannot be run on earlier JVMs.

    For a detailed description of the incompatibilities between 1.4 and 5.0, refer to http://java.sun.com/j2se/1.5.0/compatibility.html

    Java Cryptography Extension (JCE) policy files

    Due to import control restrictions for some countries, the Java Cryptography Extension (JCE) policy files shipped with the J2SE Development Kit and the J2SE Runtime Environment allow strong but limited cryptography to be used. These files are located at

    <java-home>/lib/security/local_policy.jar
    <java-home>/lib/security/US_export_policy.jar

    where <java-home> is the jre directory of the JDK or the top-level directory of the J2SE Runtime Environment. An unlimited strength version of these files indicating no restrictions on cryptographic strengths is available on the JDK web site for those living in eligible countries. Those living in eligible countries may download the unlimited strength version and replace the strong cryptography jar files with the unlimited strength files.

    Unlimited strength Jurisdiction Policy Files may be downloaded from the JavaSoft's web site. http://java.sun.com/products/jce/javase.html

    Configuring the Runtime Plug-In

    For additional information on the Runtime Plug-In, refer to the Plug-In FAQs at Java™ Runtime Plug-in (JPI) for 1.3, 1.4, 5.0, & 6.0 Frequently Asked Questions.

    The JPI configuration has been redesigned in the 5.0 release. Please refer to Sun Microsystems' documentation at: http://java.sun.com/j2se/1.5.0/docs/guide/deployment/deployment-guide/jcp.html

    CLASSPATH

    A user's CLASSPATH environment variable can be passed by the JVM by running the Control Panel and specifying either '-cp' or '-classpath' in the "Java Run Time Parameter" box. You need to exit and rerun the browser for this change to take effect.

    Java Webstart Technology Usage

    Java™ Web Start is an application-deployment technology, which gives you the power to launch full-featured applications with a single click from a web browser. It is located in the jre directory. Some of Java Web Start's features include:

    • Runs independently of any browser, so you can shut down your browser or go to another Web page and continue using your application.
    • Applications deployed with Java Web Start do not require a browser interface to operate.
    • Includes security features of the Java 2 platform.

    The hardware and operating system requirements for using Java Web Start are the same as those recommended for J2SE platform implementation on which it runs.

    Upgrading from a Previous Java Web Start Version

    Do NOT uninstall your previous version of Java Web Start (if you have one) before installing the new version. Uninstalling the previous version will cause the download cache to be cleared, and all of the previously installed Java Web Start applications will have to be downloaded again.

    This version will overwrite previous installations and automatically update browsers to use this new release. If you want to reactivate a previous version after installing this new release, you have to re-install the old version. The configuration files and program files folder used by Java Web Start have not changed, so all your settings will remain intact after the upgrade.

    Additional Java Web Start documentation

    More information, including developer documentation, can be found in Sun Microsystems' documentation at: http://java.sun.com/products/javawebstart/reference/index.html.

    Additional HP and Sun Java documentation

    The following websites have additional information:

    » HP-UX Programmer's Guide for Java 2
    » Summary of new features and enhancements in 5.0
    » New Java 5.0 language features
    » Java 2 SDK tools and tool architecture
    » Java 2 platform version 5.0 API specification
    » Java 2 platforms and APIs - Authorized Books
    » Java tutorial and code camps
    » Java security and the Java platform
    » Java technologies
    » Plug-In documentation and FAQs
    » Mozilla Browser for HP-UX
       Java man pages (located at/opt/java1.5/man)

    Problem fixes and known issues

    Security Bulletin 103112 and Java for HP-UX Integrity and PA-RISC

    This note corrects a previously documented issue with HPUX JVM and Security Bulletin 103112: Vulnerability in Java Runtime Environment Virtual Machine May Allow Untrusted Application or Applet to Elevate Privileges. The Java 1.4.2.17 release for both HP-UX Integrity and PA-RISC include the fix for SUN Alert 103112.

    Problem fixes

    Known JavaSoft bugs are documented in the Bug Database at http://developer.java.sun.com/servlet/SessionServlet?url=/developer/bugParade/index.jshtml
    (login required)

    The latest JDK 5.0 release, version 5.0.13, is designed to take advantage of more efficient memory management algorithms being implemented in HP-UX. There are no other defects fixed in this release.

    A regression in HP's SDK versions 1.4.2.11 and 1.4.2.12 and JDK versions 5.0.04, 5.0.05, and 5.0.06 can affect the running of finalizers.

    Infrequently, a finalizer is not run and the expected clean-up of any objects and resources performed in that finalizer does not occur. Symptoms can include exhaustion of available system resources including file descriptors and memory.

    A fix for this problem is included in HP's SDK version 1.4.2.13 and later and JDK version 5.0.07 and later.

    Known issues

    Below is some information on known problems for HP-UX 11i Integrity and HP9000 PA-RISC systems. Some of the solutions require installing patches. For more information on locating and installing patches, go to: Patch Information.

    Limitation when using jconsole (11i HP Integrity and HP9000 PA-RISC)

    The jconsole application relies on shared memory for inter-process communication. On HP-UX, jconsole will not work with any 32-bit application that needs all application memory mapped private. On HP Integrity (Itanium), any request of 1700MB or larger causes all memory to be mapped private. On HP PA-RISC, a request larger than 2400MB may cause all memory to be mapped private. If your Java application relies on large private address space, jconsole will not be able to monitor such Java applications.

    Supplementary characters display as empty boxes (HP Integrity 11i and HP9000 PA-RISC)

    Supplementary characters are not part of the HP-UX default truetype fonts, therefore they will not be available on HP-UX 11i PA-RISC or HP Integrity. If you try to display supplementary characters in Java 5.0, empty boxes will be displayed. You may use your own fonts to display supplementary characters, but you will need to edit the fontconfig.properties accordingly. For more information on editing font configuration files, refer to http://java.sun.com/j2se/1.5.0/docs/guide/intl/fontconfig.html

    Initializing a JVM instance with JNI_CreateJavaVM or attaching to JVM with AttachCurrentThread() on HP Integrity

    The Java 5.0 stack size required to initialize a JVM instance with JNI_CreateJavaVM or to attach to JVM with AttachCurrentThread() is greater than the HP-UX 11.23 or 11.31 (11i v2 or v3) HP Integrity pthread default of 256K. If you wish to call JNI_CreateJavaVM or AttachCurrentThread() from a pthread, you need to create the pthread with a larger stack size, at least 416K. Stack overflow failures during JVM initialization are not always clearly reported as such, since the JVM may not have yet installed its handlers, and the failures may appear as random exceptions. The solution is make sure you have enough stack space.

    Using Compiler safe points

    Using compiler safepoints guarantees a more deterministic delay to stop all running Java threads before doing an operation requiring a safepoint synchronization, such as a garbage collection. The compiler safepoints feature is enabled by default beginning with Java 5.0. (It uses a newer implementation than in previous releases which requires no HP-UX patches.) It can be disabled with

    -XX:-UseCompilerSafepoints (-XX:-SafepointPolling in 5.0.03 and older releases).pp

    shl_load HotSpot libjvm problem due to TLS (HP-UX PA-RISC only)
    The libjvm library for the HotSpot 1.4 JVM uses thread local storage (TLS). Currently, the dynamic loader that is used by shl_load does not support dynamically loading a shared library containing TLS when the library was not included in the link line.

    You may need to load a library dynamically (using shl_load or dlopen) that contains TLS, such as libjvm.sl, without having linked your application against it. This might be the case if your application uses plug-ins.

    The current workaround is a new linker feature LD_PRELOAD_ONCE.

    To obtain the LD_PRELOAD_ONCE functionality, you need to install the patch (or the patch that supersedes it) shown below.

    HP-UX 11.00 systems, install patch PHSS_28869
    HP-UX 11.11 systems, install patch PHSS_28871
    HP-UX 11.23 PA systems do not need a patch
    HP-UX 11.31 PA systems do not need a patch

    For more information on LD_PRELOAD_ONCE functionality and its limitations, read the man page for dld.sl after you have installed the patch.

    Note: In some cases, using LD_PRELOAD_ONCE with Java that uses the java launcher program instead of the previously used java launcher script, signal chaining for the actual Java program did not work as expected. If you experience this problem, we suggest you use the new enviroment variable, JAVA_PRELOAD_ONCE. In the top level driver, the value of JAVA_PRELOAD_ONCE is set to LD_PRELOAD_ONCE, so that the LD_PRELOAD_ONCE is set for the actual executable instead of the driver.

    Using Linker option +noenvvar and +compat on HP Integrity and PA-64 Systems
    If your application links with libjvm and uses the JNI interface APIs to load the JVM directly, do not use the linker options +noenvvar or +compat on HP Integrity or PA-64 systems.

    Running Java with setuid or setgid on HP Integrity and PA systems
    Java requires dynamic loading (SHLIB_PATH, LD_LIBRARY_PATH) which are disabled in setuid or setgid executables. Therefore Java cannot run with setuid or setgid.

    Running Aries HP Integrity (Itanium) emulation on PA2.0
    A patch is needed if you using the Aries emulator to execute PA-RISC Java applications on Integrity systems running HP-UX 11.23 or 11.31. The patch corrects a defect which causes Java math calculations to produce incorrect math routine results. This defect is fixed by installing the following patch or any patch that supersedes it:

    HP-UX 11.23 PHSS_35528
    HP-UX 11.31 PHSS_36311

    Java WebStart

    Java WebStart does not currently support the automatic downloading of JREs that may be requested by a JNLP file. You will need to install any specific JRE versions required by an application prior to running that application. To download the version you require, go to Java™ Technology Software on HP-UX. Once the new JRE is installed, you will need to add the new JRE to WebStart. For further information on WebStart, refer to Sun Microsystems' website at: http://java.sun.com/products/javawebstart/

    Using -XX:+UseTimedWait to correct kernel application hang on Itanium

    An application hang which has been identified as a problem in the kernel, may occur on rare occassions on Itanium systems. As a workaround, we recommend using the option -XX:+UseTimedWait. If the problem persists, please enter a Bug report. However, please be advised, that use of option -XX:+UseTimedWait has a performance impact, and customers are recommended to check any update on the recommended patch list for Java on Itanium systems. The recommended patch list will be updated as soon as a fix is released as a Kernel Patch.

    Serial Version UID Mismatch (ISV Issue)

    A serial version UID mismatch is encountered when using Weblogic Server (9.0, 9.1, or the base release of 9.2) with HP Java 5.0.05 and later.

    Parsing Failure in config.xml: javax.xml.namespace.QName; local class incompatible: stream classdesc serialVersionUID = 4418622981026545151, local class serialVersionUID = -9120448754896609940

    To workaround this problem, modify:
    <BEA_HOME>/Weblogic9x/common/bin/commEnv.sh file to include the following command:

    JAVA_OPTIONS="$JAVA_OPTIONS -Dcom.sun.xml.namespace.QName.useCompatibleSerialVersionUID=1.0"

    Alternatively, you can use the command line option:

    export JAVA_OPTIONS="$JAVA_OPTIONS -Dcom.sun.xml.namespace.QName.useCompatibleSerialVersionUID=1.0"

    This problem is fixed in Weblogic Server 9.2 MP1.

    Java™ and all Java based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. Java compatible logo