Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
HP-UX 11i Java™ SDK, RTE, and Plug-In 1.4.2.28 Release Notes HP Part Number: 5900-2196 Published: May 2012 Edition: 1.0 © Copyright 2012 Hewlett-Packard Development Company, L.P. Legal Notices Reproduction, adaptation, or translation without prior written permission is prohibited, except as allowed under the copyright laws. Java™ and all Java based trademarks and logos are trademarks or registered trademarks of Oracle America and/or its affiliates in the United States and other countries. Table of Contents Overview..............................................................................................................................6 Features.................................................................................................................................6 New in the 1.4.2.28 Release ............................................................................................7 HotSpot 1.4.2.28 Server JVM ..........................................................................................7 Equivalent Oracle release ...............................................................................................9 Installation..........................................................................................................................10 Patches ..........................................................................................................................10 HP-UX PA-RISC System Requirements .......................................................................10 HP-UX HP Integrity System Requirements .................................................................10 Installation instructions.................................................................................................10 Installing into an alternate location ..............................................................................12 File structure JDK/JRE ..................................................................................................13 File structure Runtime Plug-in (JPI) for Mozilla...........................................................14 Usage Documentation........................................................................................................15 Removing support for unwanted architectures in the JRE ..........................................15 Support for dynamic thread local storage (TLS) ..........................................................15 Signal Chaining Functionality ......................................................................................16 Support for C++ applications built with -AA and -AP options (PA-RISC) only ..........16 Using Java 2 JNI on HP-UX ..........................................................................................16 HotSpot JVM Options ..................................................................................................17 Garbage collectors: Parallel, Concurrent mark, and Sweep .........................................17 Allocating physical memory and swap in the Java heap .............................................17 Asian TrueType fonts and Asian locales ......................................................................17 Date/Time methods defaults ........................................................................................17 Profiling ........................................................................................................................18 Closing a socket when accept or read is pending (PA-RISC) - new patch information! .......................................................................................................................................18 Compatibility with previous releases ..........................................................................18 Runtime Plug-In usage and configuration ...................................................................18 GC log-rotation support ...............................................................................................19 ThreadDumpPath support ...........................................................................................20 Additional HP and Oracle Java documentation ..........................................................20 Problem Fixes......................................................................................................................21 Defects fixed in the SDK 1.4.2.28 release ......................................................................21 PA-RISC Known issues.......................................................................................................21 Recommend setting PTHREAD_SUSPEND_SYNC to 1 under certain conditions (HP-UX 11.31 (11i v3)) ..................................................................................................22 shl_load HotSpot libjvm problem due to TLS (HP-UX 11.0 PA-RISC) .................22 64-bit Support X/Motif (HP-UX 11.00 & 11.11 (11i v1) PA-RISC) ................................22 64-bit Support - System Call (HP-UX 11.00 PA-RISC) .................................................22 /dev/poll Runtime Support (HP-UX 11.00 & 11.11 (11i v1) PA-RISC) ....................22 Table of Contents 3 HPjconfig Configuration Tool ......................................................................................23 Compiler Safe Points (HP-UX 11.00 & 11.11 (11i v1) PA-RISC) ...................................23 Using Linker Option +noenvvar and +compat on HP Integrity and PA-64 Systems .......................................................................................................................................23 Running Java with setuid or setgid .......................................................................23 HP Integrity (Itanium) Known Issues ...............................................................................24 Using pthread_suspend() under certain conditions on HP-UX 11.31 (11i v3) .............24 Initializing a JVM instance with JNI_CreateJavaVM or attaching to JVM with AttachCurrentThread() .......................................................................................24 Using Linker Option +noenvvar and +compat on HP Integrity and PA-64 Systems .......................................................................................................................................24 Running Java with setuid or setgid ..............................................................................24 Running Aries HP Integrity emulation on PA2.0 .........................................................25 Software Support................................................................................................................25 Security fixes in the 1.4.2.28 release....................................................................................26 4 Table of Contents List of Tables 1 Security Fixes...............................................................................................................26 5 Overview The HP-UX Software Development Kit for the Java™ 2 Platform Version 1.4.2.28 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. See HP-UX PA-RISC System Requirements (page 10) and HP-UX HP Integrity System Requirements (page 10) for HP-UX releases that are not supported. Release notes are no longer included in the software kit, and instead, this online version is your source of information for the release. It has the most up-to-date information, especially regarding known defects, so you may want to check it occasionally for updates. Information about the Runtime Plug-in and Java Web Start are also included in these release notes. 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.28 is a 1.4.2 maintenance release and includes the following: • Designed to take advantage of more efficient memory management algorithms being implemented in HP-UX. • Oracle's 1.4.2_29 - 1.4.2_36 releases* • Performance enhancements and defects fixed in previous 1.4. releases as well as the defects shown in Problem Fixes (page 21) • Support for C++ -AA and -AP options PA-RISC • HotSpot 1.4.2.28 server JVM • Java Web Start • Runs in 32-bit or 64-bit mode on both PA-RISC and HP Integrity-based systems 6 * Note that on occasion HP backports defect and security fixes from a later Oracle release. New in the 1.4.2.28 Release HP's SDK/RTE 1.4.2.28 release includes the following new features and fixes: • The Oracle 1.4.2_29 - 1.4.2_36 releases' functionality (Note that on occasion HP backports defect fixes from a later Oracle release. See the defects fixed table for all fixes in this release.) • HotSpot 1.4.2.28 Server JVM (page 7) • Defects fixed in the SDK 1.4.2.28 release (page 21) • Oracle's Security fixes in the 1.4.2.28 release (page 26) HotSpot 1.4.2.28 Server JVM All -X options supported in earlier HotSpot JVMs are included in HotSpot 1.4.2.28. Performance, tool support, tool enhancements, and features are documented at http:// docs.oracle.com/javase/1.4.2/docs/. The HotSpot 1.4.2.28 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.28 HotSpot 1.4.2.28 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://docs.oracle.com/ javase/1.4.2/docs/api/. Following is a partial list of the functionality that the HotSpot 1.4.2.28 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 For usage information, see “IPv6 (Internet Protocol version 6) Support” in the “HotSpot Technology Tools and Commands” section of the HP-UX Programmer's Guide for Java 2 on the BSC at: http://www.hp.com/go/hpux-java-docs. Features 7 • Java VM Debugging Interface (JVMDI) JVMDI and JPDA allow you to run HotSpot with numerous development tools. For more information, refer to http://docs.oracle.com/javase/1.4.2/docs/guide/jpda/ architecture.html • Java Platform Debugger Architecture (JPDA) Architecture and components are documented at http://java.sun.com/javase/ technologies/core/toolsapis/jpda/ and http://docs.oracle.com/javase/1.4.2/docs/ guide/jpda/. The jdb for HP-UX is similar to the Solaris implementation. For usage information, refer to Oracle VM Invocation Options at http://docs.oracle.com/ javase/1.4.2/docs/guide/jpda/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 HP's wdb 3.0.01 and later debuggers may be used 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 HP-UX Programmer's Guide for Java 2. • -Xeprof option Generates profile data for HPjmeter. Zero preparation profiling is available. For syntax and use, see the -Xeprof option in the “HotSpot Technology Tools and Commands” section of the HP-UX Programmer's Guide for Java 2. • Large heap sizes Heaps up to 3.5 GB are supported on HP-UX 11i v2 (11.23) with no patches required and up to 3 GB on HP-UX 11i v1 (11.11 PA) with the installation patches. Refer to the “Expanding Memory” section of the HP-UX Programmer's Guide for Java 2. • 64-bit mode Supported with the -d64 option. For more information, see the -d64 option in the “HotSpot Technology Tools and Commands” section of the HP-UX Programmer's Guide for Java 2. • 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 8 "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: For more information on the following HeapDump options, see the “HotSpot Technology Tools and Commands” and “Interaction of HeapDump Options” sections of the HP-UX Programmer's Guide for Java 2 on the BSC at http:// www.hp.com/go/hpux-java-docs. — -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. — -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. — -XX:+HeapDumpOnOutOfMemory The -XX:+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. — -XX:+HeapDumpOnCtrlBreak The -XX:+HeapDumpOnCtrlBreak option 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. Equivalent Oracle release HP's SDK/RTE 1.4.2.28 release includes Oracle's 1.4.2_29 - 1.4.2_36 releases' functionality. (Note that on occasion HP backports defect and security fixes from a later Oracle release. See the Defects fixed in the SDK 1.4.2.28 release (page 21) table and the Security fixes in the 1.4.2.28 release (page 26) table for all fixes in this release.) Features 9 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), see the HP-UX Java Patch Information web page at: http://ftp.hp.com/pub/softlib/hpuxjava-patchinfo/index.html Please install ALL dependency patches as well. These will be listed on the IT Resource Center web page from where you download the patch. 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. 10 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. CAUTION: 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 Installing into an alternate location (page 12). For information on setting important system parameters required for correct execution of Java programs refer to the HP-UX Programmer's Guide for Java 2 on the BSC at http:// www.hp.com/go/hpux-java-docs. Setting install options using Software Depot Install (SD Install) To set install options: Installation 11 1. 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. 3. 4. 5. From the Actions menu click Change Source... Select Local Directory as the Source Depot Type. Enter the Source Host Name. Enter the Source Depot Path. If for example you downloaded the .depot file to the /tmp directory you would enter: /tmp/sdk14_14228_ia.depot If you used a directory other than /tmp in step two, replace /tmp with that directory name. Click OK and SD Install will guide you through the installation. 6. 7. If you are having problems with the software installation, refer to Software Support (page 25) 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: • Designate filesets – either: — JDK installation: Jdk14.JDK14-* and Jre14.JRE14-* — JRE installation: Jre14.JRE14-* • • Add "@/<alternate_directory>" to the end of the swinstall command. Add the alternate directory to your PATH. For example: (note that the swinstall command is located at /usr/sbin/ swinstall) JDK: swinstall -s <download> Jdk14.JDK14-* Jre14.JRE14-* @/<alternate_directory> JRE: swinstall -s <download> Jre14.JRE14-* @/<alternate_directory> SD-UX prepends <alternate_directory> to the default product path. Java will therefore install in /<alternate_directory>/opt/java1.4. If you want your Java home directory in <alternate_directory> 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: 12 JDK: swinstall -s <download> Jdk14.JDK14-* Jre14.JRE14-* @/<temporary_directory> mv <temporary_directory>/opt/java1.4/* <final_alternate_directory> JRE: swinstall -s <download> Jre14.JRE14-* @/<temporary_directory> mv <temporary_directory>/opt/java1.4/* <final_alternate_directory> Or you can install and link to the directories. For example: JDK: swinstall -s <download> Jdk14.JDK14-* Jre14.JRE14-* @/<actual_directory> ln -s /<actual_directory>/opt/java1.4/* <final_alternate_directory> JRE: swinstall -s <download> Jre14.JRE14-* @/<actual_directory> ln -s /<actual_directory>/opt/java1.4/* <final_alternate_directory> File structure JDK/JRE The following diagram displays an abbreviated form of the file structure: java1.4 | ___|________________________________________________ | | | | | bin lib | | | | jre | tools.jar | javac dt.jar | javadoc ir.idl | javah | javap jdb include javaws files* java orb.idl demo | | __|_____________________________ | | 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 Installation 13 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_RISC2.0 PA_RISC2.0W IA64N IA64W PA-RISC 1.1 32-bit PA-RISC 2.0 32-bit PA-RISC 2.0 64-bit Integrity 32-bit Integrity 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_RISC/mozilla Runtime Plug-in shared libraries loaded by Mozilla browser /opt/java1.4/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.4/jre, then the following links are created during the installation to allow the browser to locate the Runtime Plug-in shared library: Runtime Plug-in PA-RISC installation: /opt/mozilla/plugins/libjavaplugin_oji.sl -> \ /opt/java1.4/jre/plugin/PA_RISC/mozilla/libjavaplugin_oji.sl Runtime Plug-in HP Integrity installation: /opt/mozilla/plugins/libjavaplugin_oji.sl -> \ /opt/java1.4/jre/plugin/IA64N/mozilla/libjavaplugin_oji.sl If the Runtime Plug-in is installed in a non-default location, 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. 14 Information on Mozilla for HP-UX can be found at Mozilla Web Browser for HP-UX Downloads and Documentation. Additional Plug-in documentation and FAQs can be found athttp://www.oracle.com/technetwork/java/index-jsp-141438.html. Usage Documentation The HP-UX Programmer's Guide for Java 2 on the BSC at http://www.hp.com/go/ hpux-java-docs 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 more. For more information, refer to Oracle's Java HotSpot VM Options at http:// www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html. Removing support for unwanted architectures in the JRE 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 the 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, that is, /opt/java1.4/. The swremove commands must be run as root. Use these command lines: • 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 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. Usage Documentation 15 Dynamic TLS is not available on any HP-UX PA-RISC system. However there is a workaround. See shl_load HotSpot libjvm problem due to TLS (HP-UX 11.0 PA-RISC) (page 22) 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 “Signal chaining functionality” section of the HP-UX Programmer's Guide for Java 2. Support for C++ applications built with -AA and -AP options (PA-RISC) only Java supports the -AA and -AP options to build C++ applications. On HP Itanium systems, the C++ runtime libraries support -AA and -AP by default. On HP-UX 11.11 and later releases on PA-RISC systems, C++ uses the -AP runtime option by default. 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 Any native application must be either linked with, or must dynamically load these versions of the Java libraries if the 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 16 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 HP-UX Programmer's Guide for Java 2 on the BSC at http://www.hp.com/go/ hpux-java-docs. 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. For more information, 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,” also in the HP-UX Programmer's Guide for Java 2. HotSpot JVM Options For all standard and non-standard options, please refer to the HotSpot Technology Tools and Commands section of the HP-UX Programmer's Guide for Java 2. 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 and http://www.oracle.com/ technetwork/java/javase/tech/index-jsp-140228.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 the “Allocating Physical Memory and Swap in the Java Heap” section of the HP-UX Programmer's Guide for Java 2. Asian TrueType fonts and Asian locales Asian locales are supported by HP's JDK 1.4 with TrueType fonts. For more details, see HP-UX Fonts and the Java™ Runtime Environment at: http://www.hp.com/go/hpux-java-docs 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 the date command, the adjtime() function, Usage Documentation 17 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 “Closing a socket when accept or read is pending (PA-RISC)” in the “HotSpot Technology Tools and Commands” section of the HP-UX Programmer's Guide for Java 2. Compatibility with previous releases Oracle maintains upwards 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 APIs are introduced that do not run on earlier JVMs. For a detailed description of the incompatibilities between 1.3 and 1.4, refer to http:// java.sun.com/javase/compatibility_j2se1.4.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 18 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, see the Java™ Runtime Plug-in (JPI) Frequently Asked Questions at: http://www.hp.com/go/hpux-java-docs 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. Oracle 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 Oracle HTML converter and specification is available at http:// www.oracle.com/technetwork/java/features-140082.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. GC log-rotation support Prior to SDK 1.4.2.23, when using GC logging options (for example, -Xverbosegc or -Xloggc), GC data is written to a single file of unlimited size. Starting with SDK Usage Documentation 19 1.4.2.23, the JVM supports generation of multiple GC log files and rotates through the specified number of files. This allows for easier archiving of GC data and helps limit the amount of disk space consumed by the GC log. Log rotation is also supported when using zero-preparation Xverbosegc. To enable log rotation, use the following option together with -Xverbosegc, -Xloggc, or zero-preparation Xverbosegc: -XX:GCLogLimits=M,N M is a non-negative integer for the number of GC records per file. Each GC record corresponds to a GC event. A value of 0 specifies an unlimited number of records per file. N is a non-negative integer for the maximum number of files. A value of 0 specifies an unlimited number of files. When using this option, both M and N are required. If this option is not specified, then the default behavior is to write a single GC log file with unlimited size. When rotation is in effect, a sequence number is appended to the the GC filename (0 through N-1). (Examples of file names are: filename.0, filename.1, and filename.2.) With log rotation, when the specified maximum number of files (N) is reached, logging cycles back to the first file in the sequence (filename.0), overwriting old GC data with new data. If the maximum number of files (N) is never reached, then no log rotation occurs. Examples: Rotate between two log files, each with a maximum of 100,000 GC records: -XX:GCLogLimits=100000,2 Maintain an unlimited number of smaller files, each with a maximum of 1,000 GC records: -XX:GCLogLimits=1000,0 ThreadDumpPath support By default, sending the Java process a SIGQUIT signal results in a thread dump being written to stdout. Starting with the SDK 1.4.2.25 release, the -XX:ThreadDumpPath= <path/filename>option can be used to specify the thread dump file name or a directory where the thread dump is created. Additional HP and Oracle Java documentation The following websites have additional information: • HP-UX Programmer's Guide for Java 2 and Java Troubleshooting Guide for HP-UX Systems (on the Business Support Center athttp://www.hp.com/go/hpux-java-docs • Java 2 SDK version 1.4 features and tools • Java 2 version 1.4.2 API Specification • Java 2 SDK tools and utilities 20 • • • • • Java tutorials Java security Java technologies Swing Connection newsletter Java manpages (located at /opt/java1.4/man) Problem Fixes Known JavaSoft bugs are documented in the Oracle Bug Database at http:// bugs.sun.com/bugdatabase/ . Note that on occasion HP backports a defect fix from a Oracle release that has not yet been merged into our current sources. Therefore, an Oracle defect may be fixed in an HP release even though the Oracle release that contains the fix is not part of the HP release. This 1.4.2.28 release includes the enhancements and defects fixed in previous HP 1.4.2 releases and in Oracle's 1.4.2_29 - 1.4.2_36 releases, as well as the following additional defect fixes. Defects fixed in the SDK 1.4.2.28 release HP defect Description QXCR1001048217 1.4 crash: java core dump: Error:must find derived/base pair QXCR1001115828 Excessive Socket with RMI/Corba 4000228411 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, see the HP-UX Java Patch Information web page at: http://ftp.hp.com/pub/softlib/hpuxjava-patchinfo/index.html Problem Fixes 21 Recommend setting PTHREAD_SUSPEND_SYNC to 1 under certain conditions (HP-UX 11.31 (11i v3)) If on your 11.31 system you run Java programs with either the PTHREAD_FORCE_SCOPE_SYSTEM or PTHREAD_COMPAT_MODE environment variable set to 1, or with the option -XX:+UseBoundThread, then setting the environment variable PTHREAD_SUSPEND_SYNC to 1 is strongly recommended. Please see the pthread_suspend manpage for more details. 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 HP-UX 11.11 PHSS_28368 64-bit 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 HP-UX 11.00 PHKL_28202 __lw_get_thread_times reports incorrect time 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. 22 HP-UX 11.00 HP-UX 11.11 PHKL_24064 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, see the HP-UX Java Patch Information web page at: http://ftp.hp.com/pub/softlib/hpuxjava-patchinfo/index.html If the patches have been superseded, you may install the supersede patch. HP-UX HP-UX HP-UX HP-UX 11.00 11.00 11.11 (11i v1) 11.11 (11i v1) PHKL_28202 PHKL_27089 (for 64-bit) PHKL_24751 and PHKL_27317 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 executables is restricted on HP-UX. In previous HP-UX releases, executing Java from a setuid/setgid environment was not allowed. Now it is allowed, but patches must be installed, the SHLIB_PATH and LD_LIBRARY_PATH environment variables must be set, and a configuration file must be set up. 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. PA-RISC Known issues 23 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 Using pthread_suspend() under certain conditions on HP-UX 11.31 (11i v3) For all Java versions running on HP-UX 11.31, if either of the following conditions is true for a threaded application that uses pthread_suspend(), which is not POSIX-compliant, setting the environment variable PTHREAD_SUSPEND_SYNC to 1 is strongly recommended. Failing to do so, can lead to undefined behavior: • The PTHREAD_FORCE_SCOPE_SYSTEM or PTHREAD_COMPAT_MODE environment variable is set to either 1 or on. • The application's binary is brought forward from an HP-UX 11i v1 release. 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 to 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 executables is restricted on HP-UX. In previous HP-UX releases, executing Java from a setuid/setgid environment was not allowed. Now it is allowed, but patches must be installed, the SHLIB_PATH and LD_LIBRARY_PATH environment variables must be set, and a configuration file must be set up. 24 The HP-UX 11i September 2005 Quality Pack patch bundle provided support for /etc/ dld.sl.conf, which allows system administrators 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 and jli paths are 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 that 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 the HP Support Center at: http://h20566.www2.hp.com/portal/site/hpsc/public/ 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 Software Support 25 For other problems, refer to SDK & RTE 1.4 product support page at: HP-UX Java support page. Security fixes in the 1.4.2.28 release The following security fix is included in this release. Table 1 Security Fixes 26 CVE Component Note CVE-2010-4454 Sound See Note 2 CVE-2010-4462 Sound See Note 2 CVE-2010-4465 Swing See Note 1 CVE-2010-4469 HotSpot See Note 1 CVE-2010-4473 Sound See Note 2 CVE-2010-4476 Java Language See Note 5 CVE-2010-4447 Deployment See Note 1 CVE-2010-4475 Deployment See Note 1 CVE-2010-4448 Networking See Note 1 CVE-2011-0862 2D See Note 3 CVE-2011-0815 AWT See Note 1 CVE-2011-0864 HotSpot See Note 1 CVE-2011-0802 Sound See Note 2 CVE-2011-0814 Sound See Note 2 CVE-2011-0871 Swing See Note 1 CVE-2011-0867 Networking See Note 1 CVE-2011-0865 Deserialization See Note 1 CVE-2011-3548 AWT See Note 1 CVE-2011-3545 Sound See Note 2 CVE-2011-3549 Swing See Note 1 CVE-2011-3556 RMI See Note 7 CVE-2011-3557 RMI See Note 7 CVE-2011-3560 JSSE See Note 1 CVE-2011-3547 Networking See Note 1 Table 1 Security Fixes (continued) CVE Component Note CVE-2011-3389 JSSE See Note 8 CVE-2011-3552 Networking See Note 1 CVE-2012-0499 2D See Note 2 CVE-2012-0503 I18n See Note 1 CVE-2012-0505 Serialization See Note 1 CVE-2012-0502 AWT See Note 1 CVE-2011-3563 Sound See Note 2 CVE-2012-0506 CORBA See Note 1 Note 1. Applies to client deployment of Java only. This vulnerability can be exploited only through Untrusted Java Web Start applications and Untrusted Java applets. (Untrusted Java Web Start applications and untrusted applets run in the Java sandbox with limited privileges.) Note 2. Applies to client and server deployment of Java. This vulnerability can be exploited through Untrusted Java Web Start applications and Untrusted Java applets. It can also be exploited by supplying data to APIs in the specified Component without using untrusted Java Web Start applications or untrusted Java applets, such as through a web service. Note 3. Fix addresses multiple instances of this vulnerability. Applies to client and server deployments of Java. This vulnerability can be exploited through Untrusted Java Web Start applications and Untrusted Java applets. It can also be exploited by supplying data to APIs in the specified Component without using untrusted Java Web Start applications or untrusted Java applets, such as through a web service. Note 4. Applies to client deployment of Java only. This vulnerability is applicable only to systems using the Java Update (which is available only on the Windows platform). Note 5. Applies to server deployment of Java. This vulnerability can only be exploited by supplying data to APIs in the specified Component without using Untrusted Java Web Start applications or Untrusted Java applets, such as through a web service. Note 6. Applies to client deployment of Java only. This vulnerability can be exploited only when a user runs a standalone application. Note 7. Applies to RMI server deployments of Java. Note 8. This is a vulnerability in the SSLv3/TLS 1.0 protocol. Exploitation of this vulnerability requires a man-in-the-middle and the attacker needs to be able to inject chosen plaintext. Security fixes in the 1.4.2.28 release 27