HP-UX Java™ SDK, RTE, and Plug-In 1.4.2.18 Release Notes


» Back to SDK, RTE, and Plug-In 1.4.2.x Release Notes

» Back to Runtime Plug-In 1.4.2.x for Netscape/Mozilla Release Notes

SDK, RTE, and Plug-In 1.4.2.18 for HP-UX PA-RISC and HP Integrity Systems for the Java™ Platform

Contents

» Overview

» Features
 » HotSpot 1.4.2.18 JVM

» Installation
 » Patches
 » HP-UX PA-RISC System Requirements
 » HP-UX HP Integrity (Itanium) System Requirements
 » Installation instructions
 » Installing into an alternate location
 » File Structure SDK
 » File Structure Runtime Plug-in for Mozilla

» Usage documentation
 » SDK Usage
 » Removing support for unwanted architectures in the RTE
 » Support for dynamic thread local storage (TLS)
 » Signal Chaining Functionality (PA and HP Integrity)
 » Support for C++ applications built with -AA and -AP options (PA-RISC)
 » Using Java 2 JNI on HP-UX
 » HotSpot JVM options
 » Garbage Collectors: Parallel and Concurrent Mark and Sweep
 » Allocating Physical Memory and Swap in the Java Heap
 » Asian TrueType Fonts and Asian Locales
 » Date/Time Methods - New Defaults
 » Profiling
 » Closing a Socket When Accept or Read is Pending (PA-RISC only) - new patch information!
 » Compatibility with Previous Releases
 » Runtime Plug-In usage and configuration
 » Enabling HTML pages to use the Runtime Plug-in for HP-UX
 » Additional HP and Sun documentation

» Problem fixes and Known issues
 » Problem fixes

 » PA-RISC known issues
 » shl_load HotSpot libjvm problem due to TLS
 » 64-bit support X/Motif
 » 64-bit support - System call
 » /dev/poll Runtime support
 » HPjconfig configuration tool
 » Compiler safe points
 » Using Linker option +noenvvar and +compat on HP Integrity and PA-64 systems
 » Running Java with setuid or setgid

 » HP Integrity (Itanium) known issues
 » Initializing a JVM instance with JNI_CreateJavaVM
 » Using Linker option +noenvvar and +compat on HP Integrity and PA-64 systems
 » Running Java with setuid or setgid
 » Running Aries HP Integrity (Itanium) emulation on PA2.0

 » Software support

Overview

The HP-UX Software Development Kit for the Java™ 2 Platform Version 1.4.2.18 release provides the tools for developing and deploying Java applications on HP-UX 11i v1 (11.11), 11i v2 (11.23), 11i v3 (11.31) HP9000 PA-RISC, and HP-UX 11i v2 (11.23) and 11i v3 (11.31) HP Integrity systems. Please see "HP-UX system requirements" for HP-UX releases that are not supported.

There are two principal products in the Java 2 Platform Standard Edition family:

  • J2SE Runtime Environment (RTE)
    The RTE 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. The RTE is provided as a separate product, and it is also included in the SDK download package. Java WebStart technology is also included in the RTE. The Java Runtime Plug-in for Mozilla is a separate download.
  • J2SE Development Kit (SDK)
    The SDK is a superset of the RTE, and includes additional tools such as compilers and debuggers that are necessary for developing applets and applications. The SDK download package includes the RTE.

Features

HP's SDK 1.4.2.18 is a 1.4.2 maintenance release and includes the following:

  • Sun Micro systems' 1.4.2_14, 1.4.2_15, 1.4.2_16, and 1.4.2_17 release*

  • Performance enhancements and defects fixed in previous 1.4. releases as well as the defects shown in "Problem Fixes."

  • Support for C++ -AA and -AP options PA-RISC

  • HotSpot 1.4.2.18 server JVM

  • Java Web Start

  • Runs in 32-bit or 64-bit mode on both PA-RISC and HP Integrity-based systems

* Please note that on occasion HP backports a defect fix from a Sun release that has not yet been merged into our current sources. Therefore a Sun defect may be fixed in an HP release even though the Sun release that contains the fix is not part of the HP release.

HotSpot 1.4.2.18 Server JVM

All -X options that were in earlier HotSpot JVMs are included in HotSpot 1.4.2.18. Performance, tool support, tool enhancements, and features are documented at http://java.sun.com/j2se/1.4.2/docs/.

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

The SDK 1.4.2.18 HotSpot 1.4.2.18 Edition supports the APIs core to the Java 2 platform: Java Foundation Classes (JFC), Security, Java IDL, JDBC™, JavaBeans™, Remote Method Invocation (RMI), Java 2D, the Collections Framework, and a new set of nonblocking i/o APIs.

The Java 2 Platform version 1.4.2 API Specification is available at http://java.sun.com/j2se/1.4.2/docs/api/

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

  • Improved performance

  • 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 HP Integrity and PA-RISC
    Please see "IPv6 support (Internet Protocol version 6) (SDK 1.4 and later)" in the HP-UX Programmer's Guide for Java 2 at HotSpot Technology Tools and Commands#IPv6 for usage information.

  • Java VM Debugging Interface (JVMDI)
    JVMDI and JPDA allow you to run HotSpot with numerous development tools. For more information, refer to http://java.sun.com/j2se/1.4/docs/guide/jpda/architecture.html

  • Java Platform Debugger Architecture (JPDA)
    Architecture and components are documented at http://java.sun.com/products/jpda/ and http://java.sun.com/j2se/1.4.2/docs/guide/jpda/. The jdb for HP-UX is similar to the Solaris implementation. For usage information, refer to Sun VM Invocation Options at http://java.sun.com/products/jpda/doc/conninv.html

  • Java VM Profiling Interface (JVMPI)
    Support for JVMPI allows you to profile java code with the HotSpot 1.4 VM so you can extract more accurate runtime profiles.

  • 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, refer to "Using WDB to examine backtraces in Java thread stacks" in the HP-UX Programmer's Guide for Java 2 at: Debugging#wdb_debug.

  • -Xeprof option: Generates profile data for HPjmeter.
    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 (11i v2) (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

  • Support for Java 3D
    For information on HP's Java 3D technology, see "3D for SDK & RTE overview & features" at Java™ 3D for SDK and RTE Downloads and Documentation

  • New garbage collectors
    Supports parallel and concurrent mark and sweep garbage collectors. For a detailed look at garbage collection and the new collectors, refer to JavaSoft's documentation "Tuning Garbage Collection with the 1.4.2 Java Virtual Machine" at http://java.sun.com/docs/hotspot/gc1.4.2/index.html.

  • Java Web Start bundled with the RTE
    The files for Java Web Start technology are part of the jre in the directory javaws. Web Start release notes are also included in the javaws directory.

  • HeapDump Options:
    • -XX:+HeapDump
      The HeapDump command line 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 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. Please also note the section on 'Interaction of HeapDump Options'.

    • -XX:+HeapDumpOnly
      The HeapDumpOnly option can be used to enable HP Heap Dumps using SIGVTALARM signal (signal 20). Using the environment variable, _JAVA_HEAPDUMP_ONLY, the HeapDump functionality is triggered without modifying the java command line. For further information, refer to the HP-UX Programmer's Guide for Java 2 at HotSpot Technology Tools and Commands#HeapDumpOnly. Please also note the section on 'Interaction of HeapDump Options'.

    • XX:+HeapDumpOnOutOfMemory
      The HeapDumpOnOutOfMemory 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 HeapDumpOnOutOfMemory functionality is also available in JDK 1.5.0.04. For further information, refer to the HP-UX Programmer's Guide for Java 2 at HotSpot Technology Tools and Commands#HeapDumpOnOutOfMemory.

    • -XX:+HeapDumpOnCtrlBreak
      The option -XX:+HeapDumpOnCtrlBreak enables the ability to take snapshots of the Java heap when a SIGQUIT is sent to the Java process, without using the jvmti-based -Xrunhprof:heap=dump. This feature is similar to the -XX:+HeapDump option, except the output format is binary hprof format, and is placed into a filename. The HeapDumpOnCtrlBreak functionality is also available with JDK 5.0.05. For further information, refer to the HP-UX Programmer's Guide for Java 2 at HotSpot Technology Tools and Commands#HeapDumpOnCtrlBreak. Please also note the section on 'Interaction of HeapDump Options'.

Installation

Patches

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

Beginning with SDK version 1.4.2.06, the following networking patch (or its superseded patch) must be installed for HP-UX 11.11 (11i v1) PA-RISC. The patch is not required for HP Integrity, or for other PA-RISC versions.

HP-UX 11.11 (11i v1) PA-RISC Required patch PHNE_29887 solves socket problems that may cause hangs

For all SDK versions 1.4.2.xx, the pthreads patch shown below (or its superseded patch) must be installed for HP-UX 11.0 or HP-UX 11.11 (11i v1)PA-RISC. The patch is not required for HP Integrity.

HP-UX 11.0 PA-RISC Required patch PHCO_29959 or
HP-UX 11.11 (11i v1) PA-RISC Required patch PHCO_29960

To determine which patches have been installed on your machine, log in as root and check your machine with:

/usr/sbin/swlist -l product

For a complete list of required and recommended patches (which includes the patches mentioned above), refer to the web page shown below. Please install ALL dependency patches as well. These will be listed on the IT Resource Center web page from where you download the patch: Patch Information

Operating system patches should be installed before you install the SDK.

HP-UX PA-RISC System requirements

The Java technology requires HP-UX HP PA-RISC systems 11.11 (11i v1), 11.23 (11i v2), and 11.31 (11i v3). (HP-UX 11.20 and 11.22 are not supported.) The minimum system for running Java applications is a PA-RISC 2.0 system.

HP-UX HP Integrity System Requirements

The Java technology requires HP-UX 11.23 (11i v2) and 11.31 (11i v3). (HP-UX 11.20 is not supported.) Refer to the following web site for HP Integrity servers: HP Integrity Servers

Installation instructions

You need a total of approximately 160 MB of disk space to download and install the .depot file. The download file runs on both Workstations and Servers. After installing the software, you can remove the .depot file.

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.

The SDK for the Java™ Platform installs under /opt/java1.4. The RTE is installed under /opt/java1.4/jre. If you have a previous installation of 1.4, please uninstall it using swremove and move any personal files from your existing /opt/java1.4 directory before you begin the new installation. If you do not uninstall a previous installation, you may see messages such as "Error: You have specified more than one fileset selection." 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 file systems" 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.4/bin to your PATH.

Note: To install the software into an alternate location, see the next sections "Installing into an Alternate Location."

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.

Setting install options using Software Depot Install (SD Install)

  1. To set install options, click the Options menu on the main SD Install window and click Change Options. We recommend setting the following install options:
    • Deselect Mount file systems in /etc/fstab or /etc/checklist.
    • Select Reinstall filesets even if same revision exists.
  2. From the Actions menu click Change Source...
  3. Select Local Directory as the Source Depot Type.
  4. Enter the Source Host Name.
  5. Enter the Source Depot Path. If for example you downloaded the .depot file to the /tmp directory you would enter: /tmp/sdk14_14208_1122.depot
  6. If you used a directory other than /tmp in step two, replace /tmp with that directory name.
  7. Click OK and SD Install will guide you through the installation.

If you are having problems with the software installation, refer to Software Support in these release notes.

Verifying file download

To verify that the file downloaded correctly, at the UNIX prompt run the command cksum <filename>. If the file downloaded correctly, the checksum number for the file you downloaded should match the checksum number given above for that file.

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>

Java prepends <alternatedirectory> to the default product path. Java will therefore install in /alternatedirectory/opt/java1.4.

If you want your Java home directory in <alternatedirectory> without the /opt/java1.4 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.

Please note that Java does not use the SD configure step; "installed" is the same as "configured".

File structure SDK

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


  java1.4

     |

  ___|______________________________________________

   |        |        |            |           |        

  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_RISC PA_RISC2.0 PA_RISC2.0W  IA64N  IA64W    |  

                                                   |

                                                   |

             __________________________________________________________________

             |      |    |       |        |           |           |        | 

           rt.jar  zi security PA_RISC  PA_RISC2.0  PA_RISC2.0W  IA64N   IA64W 

        charsets.jar             |________|___________|___________|________|___  

          jce.jar                |        |           |           |        |        

          jsse.jar            server    server      server      server   server

		  

* The files for Java Web Start technology are part of the jre in the directory javaws. Web Start release notes are also included in the javaws directory.

The tools are under opt/java1.4/bin and the libraries install under opt/java1.4/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 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_RISC PA-RISC 1.1 32-bit
PA_RISC2.0 PA-RISC 2.0 32-bit
PA_RISC2.0W PA-RISC 2.0 64-bit
IA64N HP Integrity 2 32-bit
IA64W HP Integrity 2 64-bit

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

File structure Runtime Plug-in (JPI) for Mozilla

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

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

If the JPI is installed in the default location, /opt/java1.4/jre, 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.4/jre/plugin/PA_RISC2.0/mozilla/libjavaplugin_oji.sl 

HP Integrity installation:


/opt/mozilla/plugins/libjavaplugin_oji.sl -> \ 

    /opt/java1.4/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 options 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 1.4.2.08, we are combining the SDK, RTE, and Runtime Plug-in release notes in this document.

For additional documentation web sites, refer to "Additional HP and Sun documentation" in these release notes.

SDK Usage

Removing support for unwanted architectures in the RTE

Under the RTE license agreement, partners who redistribute the RTE may remove support for unwanted architectures. Functional components may NOT be removed under any circumstances. Beginning with this 1.4.2.05 release, you may remove support for unwanted architectures as follows:

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

The swremove commands must be run as root. Use these command lines:

  • On a PA-RISC or HP Integrity (Itanium) system, to remove PA_RISC 1.1 support:

/usr/sbin/swremove Jre14.JRE14-PA11 Jre14.JRE14-PA11-HS
(The -pa11 command line option will no longer work.)

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

/usr/sbin/swremove Jre14.JRE14-PA20W Jre14.JRE14-PA20W-HS
(The -d64 command line option will no longer work.)

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

/usr/sbin/swremove Jre14.JRE14-IPF64 Jre14.JRE14-IPF64-HS
(The -d64 command line option will no longer work.)

  • PA_RISC 2.0 support is not typically installed on HP Integrity, but if it is, to remove it:
    
    /usr/sbin/swremove Jre14.JRE14-PA20 Jre14.JRE14-PA20-HS \
    
             Jre14.JRE14-PA20W Jre14.JRE14-PA20W-HS
    
    

Support for dynamic thread local storage (TLS)

Dynamic thread local storage is fully supported on all HP Integrity (Itanium) systems, beginning with SDK Versions 1.4.2.00 and 5.0.

Dynamic TLS is not available on any HP-UX PA-RISC system. However there is a workaround. Refer to "shl_load HotSpot libjvm problem due to TLS (PA-RISC)" in these release notes for details.

Signal Chaining Functionality

With signal chaining functionality, applications can now use signals that the JVM uses and they will not interfere with the JVM's functionality. For signal chaining, the application must load the library libjsig.sl (PA) or libjsig.so (Itanium) before libc.2.

On PA-RISC, to obtain this functionality, you need to install the patch shown below and then use LD_PRELOAD. On HP Integrity, no patch and no workaround is needed.

HP-UX 11.11 PA-RISC systems, install patch PHSS_28436 (or the patch that supersedes it)

For examples and scenarios of how to use LD_PRELOAD, refer to the Java for HP-UX Programmer's Guide at: Using Signals#chaining

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 SDK and RTE, starting at this webpage:
SDK and RTE 1.4.2.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.

HotSpot JVM Options

For all standard and non-standard options, please refer to the Java for HP-UX Programmer's Guide at HotSpot Technology Tools and Commands.

Garbage collectors: Parallel, Concurrent mark, and Sweep

JavaSoft has implemented new generational collectors that emphasize the throughput of the application or low garbage collection pause times.

For a detailed look at garbage collection and the new collectors, refer to JavaSoft's documentation "Tuning Garbage Collection with the 1.4.2 Java Virtual Machine" at http://java.sun.com/docs/hotspot/gc1.4.2/index.html

Allocating physical memory and swap in the Java heap

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 1.4 JDK with TrueType fonts. For more details, please refer to HP-UX Fonts and the Java™ Runtime Environment.

Date/Time methods - New defaults

The HotSpot JVM uses the gettimeofday() system call to obtain date and time information.

For performance reasons a new mechanism is used that uses the number of CPU ticks since the application started, 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

In the SDK Version 1.4, a SIGPROF handler to support future profiling capability is installed automatically. This may cause incompatibilities with other native code or profiling tools which use SIGPROF.

You can turn off the SIGPROF handler 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.

Closing a socket when accept or read is pending (PA-RISC) - new patch information!

Because of changes to the mechanism by which a socket is closed in the VM, for all supported HP-UX PA-RISC systems, you no longer need to use the -XdoCloseWithReadPending option we recommended in earlier releases. However for HP-UX 11.11 the following patches (or their superseded patches) are required:

PHKL_32457
PHKL_25840
PHKL_25842
PHNE_25644
PHNE_25084

For more detailed information, refer to the Java for 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.3 JVM will run on a 1.4 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.3 and 1.4, refer to http://java.sun.com/j2se/1.4/compatibility.html

Runtime Plug-In usage and configuration

You can configure the Runtime Plug-In by running the Control Panel script, which launches the Control Panel java application, or by loading ControlPanel.html in the browser. Both files are found in the directory jre/bin and jre/, respectively, under the directory where the Runtime Plug-in has been installed.

The Control Panel application generates a file,

$HOME/.java/deployment/deployment.properties.

This file contains, among other settings, the path to the RTE to be used by the Runtime Plug-in for HP-UX when the browser loads an applet from a Runtime Plug-in enabled html page. If the Plug-in is installed in the default location, this setting is stored in the key:

javaplugin.jre.path=/opt/java1.4/jre

No environment variables are necessary for configuring the Runtime Plug-In for HP-UX, Java Edition. However, you may optionally use the following environment variables.

MOZ_PLUGIN_PATH

You can use the MOZ_PLUGIN_PATH environment variable to direct the Mozilla browser to search alternate directories for plug-in libraries.

Note: The entries in the $HOME/.java/deployment/deployment.properties file supersede those of MOZ_PLUGIN_PATH when locating the RTE.

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.

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.

Enabling HTML pages to use the Runtime Plug-in for HP-UX

The first time the Mozilla browser loads an applet from a Runtime Plug-in-enabled HTML page, it will download and install the Runtime Plug-in for HP-UX. Sun Microsystems Inc. has provided some additional tools to assist users in using Plug-in products. They have provided a converter to automate the enabling on HTML pages. They also provide an HTML specification for users who wish to enable their HTML pages manually.

Information on Sun Microsystems HTML converter and specification is available at http://java.sun.com/reference/docs/index.html. You may want to use it to modify your HTML pages to specify use of the Runtime Plug-in for HP-UX, Java Edition, version 1.4.x instead of the default browser version of the HP-UX Runtime Environment for Java.

Additional HP and Sun documentation

The following web sites have additional information:

» HP-UX Programmer's Guide for Java 2
   Java man pages (located at/opt/java1.5/man)
» Java 2 SDK version 1.4 features and tools
» Java 2 version 1.4.2 API Specification
» Java 2 SDK tools and utilities
» Java 2 platforms and APIs - Authorized Books
» Java tutorial
» Java security
» Java technologies
» Swing Connection newsletter
» Mozilla for HP-UX
» DSPP Developer's Portal Java technologies

Problem fixes and known issues

Known JavaSoft bugs are documented in the Bug Database at http://developer.java.sun.com/

Problem fixes

Please note that on occasion HP backports a defect fix from a Sun release that has not yet been merged into our current sources. Therefore a Sun defect may be fixed in an HP release even though the Sun release that contains the fix is not part of the HP release.

This 1.4.2.18 release includes the enhancements and defects fixed in previous HP 1.4.2 releases and in Sun's 1.4.2_14, 1.4.2_15, 1.4.2_16, and 1.4.2_17 as well as the following additional defect fixes and Sun Alerts:

HP defect HP SRDuplicateDescription
QXCR1000584501N/AN/A1.4.2.11 segv at codeBlob.hpp:130.
QXCR10005706748606461307N/AWrong nmethod local slot usage caused SIGSEGV in the nmethod.
QXCR10005925698606496740N/AJava heapdump (-XX:+HeapDump) may use big amount of C heap memory.
QXCR10005925708606496741N/AAdded largefile support for heapdump.
QXCR1000772455N/AN/AIPF 1.4.2.10 JVM crashes when null receiver was passed to a dead nmethod.
QXCR1000773703N/AN/AImplement Javasoft's recommendtation/fix for PrintStackTrace failure.
QXCR1000782450N/AN/A142TOT libjava.so missing libjvm.so dependency.
QXCR1000785486N/AN/A1.4.2.09 PA JVM crashes when null receiver was passed to a dead method.
QXCR1000753085N/AN/AIPF 14213 compiler threads are blocked by tl_lock.
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.

PA-RISC Known Issues

Below is some information on known PA-RISC defects. Some of the solutions require installing patches. For more information on locating and installing patches, go to: Patch Information

shl_load HotSpot libjvm problem due to TLS (HP-UX 11.0 PA-RISC)

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 that is available for HP-UX 11.0 in patch PHSS_28434 (or its supersede patches). For HP-UX 11.11 (11i v1) the feature is included. For more information on LD_PRELOAD functionality and its limitations, read the man page for dld.sl AFTER you have installed the patch.

64-bit Support X/Motif (HP-UX 11.00 & 11.11 (11i v1) PA-RISC)

For 64-bit support on X/Motif, you will need to install one of the patches shown below (or their supersede patch), depending on your operating system.

HP-UX 11.00 PHSS_28368 64-bi
HP-UX 11.11 PHSS_28875 32/64-bit

These fix GUI failures due to the window height of some Java application pop-up windows being too large.

64-bit Support - System Call (HP-UX 11.00 PA-RISC)

The lightweight timer may not function correctly because the system call __lw_get_thread_times() may fail.

For HP-UX 11.0, the workaround is to install the two patches shown below, or their supersede patch. HP-UX 11.11 (11i v1) system calls function correctly.

HP-UX 11.00 PHKL_28202 __lw_get_thread_times reports incorrect time
HP-UX 11.00 PHKL_26008 cumulative pstat patch

/dev/poll Runtime Support (HP-UX 11.00 & 11.11 (11i v1) PA-RISC)

For systems where /dev/poll runtime support is required, you will need to install one of the following patches, depending on your HP-UX version. If the patches have been superseded, you may install the supersede patch.

HP-UX 11.00 PHKL_24064
HP-UX 11.11 PHKL_25468

HPjconfig Configuration Tool

HPjconfig version 2.0 is not supported on the HotSpot 1.4 VM. HPjconfig version 2.1 and later is supported, which you can download free from: Java™ Technology Software on HP-UX.

Compiler Safe Points (HP-UX 11.00 & 11.11 (11i v1) PA-RISC)

For both HP-UX 11.0 and 11.11, using Compiler Safe Points requires a patch. The required patch numbers are shown below. For information on locating and installing the patches, go to: Patch Information If the patches have been superseded, you may install the supersede patch.

HP-UX 11.00 PHKL_28202
HP-UX 11.00 PHKL_27089 (for 64-bit)
HP-UX 11.11 (11i v1) PHKL_24751 and PHKL_27317
HP-UX 11.11 (11i v1) PHKL_27092 (for 64-bit)

In SDK 1.4.2.10, compiler safe points is off by default. To turn it on, use the -XX:+UseCompilerSafepoints option. Enabling compiler safe points guarantees a more deterministic delay to stop all running java threads before doing a safe point operation, namely garbage collection and deoptimization.

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. The defect does not exist on PA-RISC 32-bit systems.

Running Java with setuid or setgid

Running java from setuid/setgid executable's is restricted on HP-UX. In previous releases of HP-UX, executing java from a setuid/setgid environment has been disallowed.

The HP-UX 11i September 2005 Quality Pack patch bundle provides support for /etc/dld.sl.conf which allows sys admins to specify a list of trusted paths on the system. When executing within a setuid environment, the dynamic loader will compare the paths in SHLIB_PATH/LD_LIBRARY_PATH against the list of trusted paths found in /etc/dld.sl.conf. If the path is a trusted path, then it will be used for library lookup.

Users can run java from a setuid environment if the jre path is added to the /etc/dld.sl.conf file.

The file /etc/dld.sl.conf is only referenced when the application is executing within an suid environment.

On IPF, starting with JDK 1.4.2.10, users can launch java from an suid application with linker patch PHSS_32765 (or superceding patch) installed on the system.

With JDK 1.4.2.10 and patch PHSS_32765, users do not need to specify the JRE path in /etc/dld.sl.conf.

HP Integrity (Itanium) Known Issues

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

Starting in 1.4.2.00 with the 64-bit SDK, the 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 (11i v2) Itanium 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.ures may appear as random exceptions. The solution is make sure you have enough stack space.

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. The defect does not exist on PA-RISC 32-bit systems.

Running Java with setuid or setgid

Running java from setuid/setgid executable's is restricted on HP-UX. In previous releases of HP-UX, executing java from a setuid/setgid environment has been disallowed.

The HP-UX 11i September 2005 Quality Pack patch bundle provides support for /etc/dld.sl.conf which allows sys admins to specify a list of trusted paths on the system. When executing within a setuid environment, the dynamic loader will compare the paths in SHLIB_PATH/LD_LIBRARY_PATH against the list of trusted paths found in /etc/dld.sl.conf. If the path is a trusted path, then it will be used for library lookup.

Users can run java from a setuid environment if the jre path is added to the /etc/dld.sl.conf file.

The file /etc/dld.sl.conf is only referenced when the application is executing within an suid environment.

On IPF, starting with JDK 1.4.2.10, users can launch java from an suid application with linker patch PHSS_32765 (or superceding patch) installed on the system.

With JDK 1.4.2.10 and patch PHSS_32765, users do not need to specify the JRE path in /etc/dld.sl.conf.

Running Aries HP Integrity emulation on PA2.0

If you are running the Aries HP Integrity emulator on a PA2.0 system with HP-UX 11.23, a defect exists which causes Java math calculations to produce incorrect math routine results. This problem is fixed by installing the following patches, or the patches that supersede them:

HP-UX 11.23 PHSS_29658 (or the patch that supersedes it)

 

Software Support

If you are having problems with the download or software installation, please take a minute to read through these commonly encountered problems, which might apply to you.
  • If you cannot resolve the download problem, report your download problem and provide us with the following information:
    • Java version you are trying to download
    • HP-UX OS version (in a shell window, type uname -a)
  • If you cannot resolve the software installation problem, please contact your authorized support provider and provide them with the information below. Check HP's support page at: http://www1.itrc.hp.com/service/home/home.do for HP support information.

    The IT resource center will need the following the following information to assist you:
    • The command line you are using to run swinstall
    • The output of the command
    • The options you chose in swinstall
    • The source depot path

For other problems, please refer to SDK & RTE 1.4 product support page at: HP-UX Java support page.

For information on using Java, see the Programmer's Guide.

Legal notices

© Copyright 2001, 2008 Hewlett-Packard Development Company, L.P.
Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.