Important Information About BEA WebLogic JRockit 7.0 Service Pack 6 Rolling Patch 1
BEA WebLogic JRockit 7.0 Service Pack 6 Rolling Patch 1 updates previous versions WebLogic JRockit 7.0 SDK. The following information should be noted:
WebLogic JRockit 7.0 is updated to time zone level 2007 a.
Fix for Sun Alert ID 102171 "Security vulnerabilities in the Java Runtime Environment may allow an untrusted applet to elevate its privileges" is included.
Fix for Sun Bug ID 6223075 "java.util.zip stream classes do not close default {De,In}flaters" is included.
Fix for Sun Bug ID 6223076 "Unnecessary object retention in java.util.zip.Deflater" is included.
Changes in the Rolling Patch 1
Table 2 describes changes in WebLogic JRockit 7.0 service pack 6 rolling patch 1.
JRockit no longer crashes due to a previous bug in the JRockit code optimizer that was triggered by applications throwing a large amount of exceptions.
CR204117
In rare cases, on Linux, when multiple threads are doing gethostbyname, JRockit might return connection refused when trying to connect to a new socket. This has now been fixed.
CR249230
JRockit could crash when started as a Windows service if no home is set in the registry. This has now been fixed
CR244314
JRockit now has a better error handling when given a null-socket e.g. when a connection is unexpectedly interrupted. It now displays a NullPointerException instead of a crash.
CR220792
JRockit now throws proper exceptions when connecting to non-openable connections.
Important Information About BEA WebLogic JRockit 7.0 Service Pack 6
BEA WebLogic JRockit 7.0 Service Pack 6 updates previous versions WebLogic JRockit 7.0 SDK. The following information should be noted:
If you are running Red Hat Linux on Hyper-Threading (HT) enabled Intel processors, be aware of the following:
To ensure that JRockit can detect that HT is enabled, make the devices in /dev/cpu/X/cpuid (where X is the CPU number) readable for any process. This will not cause a security problem, since almost all of this information is already available in read-only form on /proc/cpuinfo.
For the device to be loaded automatically you also need to add the line alias char-major-203 cpuid to your /etc/modules.conf file.
JRockit will still work on an HT-enabled system even if it doesn't detect that HT is enabled, although HT specific optimizations will not be performed in this case.
Neither JVMDI or JVMPI is supported in this release.
This release now supports Microsoft Windows 2003 (IA32 Enterprise Edition) running with J2SE 1.3.1.
RHEL 2.1 cannot produce core files larger that 2 GB even though the process size may be up to 3 GB. Core files are created by the OS when JRockit dumps because of a bug in JRockit or in third-party JNI code. The core files are used by BEA support and engineering to find the reason of a crash. Therefore BEA will not support customers with a JRockit process size exceeding 2 GB.
This release does not contain any fix for the Australian Daylight-savings Time change for 2006. Please contact BEA support for a patch.
Listing of all Service Pack Changes Changes in all Service Packs
This section lists the issues reported as change requests (CR) that were resolved for this and earlier WebLogic JRockit 7.0 SDK service packs.
The argument java.vm.arguments has been removed for security reasons.
CR137395
Soft references clearing is now configurable. Use -XXsoftrefMSSurvivalRate to set how long time a softly referenced object may survive. The survival time for the object is calculated as #free MB * 500ms. The value 500ms can be set with -XXsoftrefMSSurvivalRate. During a concurrent marking phase the survival time will be divided by 2.5.
CR160883
Leap year bug in the Gregorian Calendar (Sun bug ID#: 4401223, 4398844) fixed in JDK 1.3.1_14.
CR174766
JRockit now produces a full core dump when encountering some severe errors. Previously JRockit printed the message "thread died abruptly" when encountering certain kinds of internal errors.
CR175995
Running JRockit on RHAS 2.1 ia32 no longer throws a null pointer exception when the user exits the console by clicking Exit in the Connection menu.
CR176467
When passing a NULL argument to jvmdiGetThreadInfo previous caused a crash with JDWP. It now returns the current thread info.
CR176479
When using -Xgc:singlecopy, space was not allocated to accommodate hash values with resulting in a crash.
CR179657
The method maxMemory0 in java.lang.Runtime is now declared to be private.
CR187474
Crash in utilTimeingUpdateFrequency caused by a possible thread race is now fixed.
CR187571
Improved String.intern() performance on SMP machines.
CR190996
In certain rare situations code generation could generate code that would crash during garbage collection. This would only happen for methods with many local variables.
CR195821
Reintroduced the switch -Xnohup to prevent JRockit to terminate on a SIGHUP signal. This is also useful when JRockit is run as a Windows service.
CR204739
Some memory leak detection functionality is now enabled and accessible via Ctrl-break handlers.
CR205305
JRockit End User License Agreement (EULA) has been revised.
CR205983
JRockit no longer throws a null pointer exception in WLS 81 Security Providers when using OptimizeIt's Code Coverage.
CR206602
A race between JNI and the garbage collector caused a crash where no dump file but a core file was created.
CR206810
The implementation of the mmap syscall on RHEL3.0 allows mapping of the lowest page in the virtual address space (starting at 0x00000000). This breaks anything that expects access to this page to cause a SIGSEGV, i.e. JRockit null pointer exceptions, forced dumping etc. JRockit now allocates and mark the null pointer memory area as inaccessible to prevent this from happening.
CR210648
JRockit now produces core dumps for internal failures when -Xdebug is used.
System Property Changes
This release supports all system properties that are available from Sun.
Table 3 following system properties have changed in this service release.
Table 3 Changes in system properties
Property name
7.0 sp6 behavior
Previous behavior
Comment
java.vendor.url.bug
http://java.sun.com/cgi-bin/bugreport.cgi
http://support.bea.com
Sun is the Java Runtime Environment Vendor. BEA is the VM vendor. java.vm.vendor=Bea Systems, Inc. left unmodified.
java.vendor.url
http://java.sun.com/
http://www.bea.com/
java.vendor
Sun Microsystems Inc.
BEA Systems, Inc.
os.name
Windows 2003
Windows Server 2003
Wrongly defined as "Windows XP" by Sun JDK 1.3.1/1.4.1
user.home
Initialized by Windows registry, fallback on environment variable "USERPROFILE"
Only initialized by environment variable "USERPROFILE".
java.awt.fonts
Initialized by environment variable "JAVA_FONTS".
Defined but empty.
user.region
Properly set on Linux. Unchanged behavior on Windows.
Undefined on Linux
user.language
Affected by minor updates in locale tables
file.encoding
Properly set on Linux. Unchanged behavior on Windows.
The Linux behavior was previously wrong.
Added System Properties
The property sun.cpu.endian has been added and it behaves exactly like the Sun property.
The property sun.cpu.isalist has been added and it behaves exactly like the Sun property.
Removed System Properties
The property java.vm.arguments has been removed for security reasons, see CR133180.
Replaced System Properties
The property java.vm.vendor.url.bug with the behavior http://support.bea.com now replaces java.vendor.url.bug.
Changes in Service Pack 5
Table 4 describes changes in WebLogic JRockit 7.0 service pack 5.
Table 4 Changes in BEA WebLogic JRockit 7.0 SP5 SDK
Issue
Description
CR130147
Occasionally, some users were experiencing Out of Memory errors despite having large amounts of heap still available. To alleviate this problem, the default compaction ratio value was changed to ten (chunks) from one, effectively unpinning large objects in memory.
CR112202
If you were using RedHat Linux AS 2.1 and writing an application that would create a Chinese filename, that filename would not be created successfully. A patch to correct this problem was created for earlier versions of WebLogic JRockit and has been integrated into this service pack.
CR112937
Some Linux users were encountering problems running the JVM when application file size exceeded about 2 GB. They would see a "File size limit exceeded" exception and the application stopped, indicating that the JVM was not able to handle large files. This issue has been corrected. WebLogic JRockit now supports 64-bit files
CR127060
Several customers have observed execute threads becoming stuck in the java.lang.Object.getMonitorIndexAndLock(Native Method) method call, causing CPU usage to peg to 100%. This condition apparently was caused by a race between the weak-handles used by String.intern() and the fat-locks. It has been corrected in this release.
CR128580
In some circumstances, Linux versions of WebLogic JRockit would crash in mcOC14GenProcessReference, creating a core dump. This type of crash was attributed to a GCC problem (also reported in CR126001) and has been fixed in this service pack.
CR128798
Some WebLogic JRockit users running Windows 2000 have experienced out-of-virtual-memory conditions. These were caused by certain method calls that would result is a 60 KB unusable hole in the virtual memory address space. This condition has been corrected.
CR130147
Some WebLogic JRockit users would encounter OutOfMemory errors when trying to allocate space in the heap, despite there being sufficient heap space to handle the desired allocation. This service pack rectifies this situation by unpinning large objects in the heap.
CR133625
To enable the /3GB option in WebLogic JRockit, a LARGEADDRESSAWARE java.exe has been included in this service pack.
CR135513
Some users were experiencing a crash while doing a garbage collection when they attempted to roll forward a thread in the ntdll to a logical stopping point. The crash happened because the thread that was being rolled forward would thrown an exception while in a state between Java code and native JRockit code, where a check for this situation should be made. This was corrected by a patch, which this service pack integrates into WebLogic JRockit.
CR136462
In previous versions of WebLogic JRockit, applications running JNI methods and frequent garbage collections would occasionally crash. This was due to the application attempting to treat a random pointer as an Object pointer. This service pack corrects this problem.
Changes in Service Pack 4
No major issues required resolution in this service pack.
Changes in Service Pack 3
Table 5 describes changes in WebLogic JRockit 7.0 service pack 3.
Table 5 Changes in BEA WebLogic JRockit 7.0 SP3 SDK
Issue
Description
CR093609
In some circumstances, if you attempt to close a socket that has an outstanding read/write, you might be context-switched before the native code has time to run. Subsequent to the switch, the other (read/write) thread would come in, do the actual close, return, and open another socket before you have time to issue the disconnect call (pre-close). Occasionally, this will recycle the fd handle and thus shut down the new socket instead of the one you are attempting to close. A synch guard was added so that, during the actual pre-close-close chain, the pre-close will never occur after the close.
CR100210
During calls to very large methods using numerous local variables, a bug in WebLogic JRockit caused some variables to be incorrectly optimized away. This situation tends to occur only with a very rare combination of bytecode; for example, large JSP pages that use a lot of include clauses. jre\bin\jrockit\jvm.dll was updated to alleviate this condition.
CR108146
The root directory names for WebLogic JRockit SDK Linux installations are now the same, regardless of the installer used. The root directories are:
BEA installer: $BEAHOME/jrockit70sp3_131_08/
RPM: /opt/bea/jrockit70sp3_131_08/
Changes in Service Pack 2
Table 6 describes changes in WebLogic JRockit 7.0 service pack 2.
Table 6 Changes in BEA WebLogic JRockit 7.0 Service Pack 2 SDK
Issue
Description
CR084919
Behavior when closing channels in java.nio has been changed to match the reference implementation.
CR085569
WebLogic JRockit 7.0 SDK supports the following J2SE version 1.3.1_06.
CR085950
Creating a FileChannel from a writable RandomAccessFile did not make the FileChannel writable.
CR086566
The size field reported for the JIT-ed methods in the JVMPI_EVENT_COMPILED_METHOD_LOAD callback packet was increased by one byte.
CR087518
Calls to JNI methods in the VM from native code with parameters on the stack could in some cases cause the VM to crash.
CR087639
Occasionally, the alignment of memory-mapped FileChannels would be incorrect. Alignment has been corrected in this version of WebLogic JRockit.
CR087916
The Management Console server was modified so that it now functions correctly when running JRockit on Linux with thin threads (-Xthinthreads).
Note: Thin threads is experimental functionality in this version of JRockit, and is not recommended for general use. This feature is subject to change without notice.
CR088210
The library method java.lang.Class.getMethods() would occasionally return methods declared in interfaces as well as the methods defined in a class implementing that interface. This could result in the wrong serialVersionUID being calculated. This condition was fixed.
CR089143
Support for endorsed libraries was added. For more information about endorsed standards see:
An error in the time zone resolution on Linux would for certain systems and certain time zones result in a failure to initialize the class java.util.TimeZoneData. This error was corrected.
CR090609
You no longer have to remove an existing version of WebLogic JRockit 7.0 SDK when installing a later version. Instead, the current installation process will overwrite the existing version. Users are still able to install the new version in a different directory, if they want to.
CR091269
The installation directory /usr for JRockit RPM packages remains the default but now it can be relocated so that users can use RPM installer options to override it at installation.
CR091566
Several rare race conditions were fixed. These were conditions that occurred when opening and closing sockets and only when using WebLogic JRockit with JDK 1.3.1. The problem occurred infrequently when more than one thread was involved in opening and closing sockets. An occasional IOException would be thrown indicating a newly open socket had been closed, when this was not actually the case.
CR091748
The native implementation of Socket.getLocalAddress() was modified to prevent it from returning a local address of null. Previously, this problem occurred infrequently.
CR094617
The Generational Concurrent garbage collection method (-Xgc:gencon) had its heap allocation modified to prevent the system from hanging on Linux at high load. The application threads were previously capable of taking all CPU time from the background old heap collector thread, while also waiting for its completion. The resulting livelock caused the system to be unresponsive. Application threads now correctly wait for the collector thread to complete collection when they require more memory.
Changes in Service Pack 1
For a list of changes in WebLogic JRockit 7.0 for Windows and Linux service pack 1, released in November, 2002, please see Table 2 in the BEA WebLogic JRockit 7.0 SP2 Release Notes.
Using WebLogic JRockit 7.0 SP6 with Older WebLogic Platform Scripts
If you are using this service pack of WebLogic JRockit 7.0 with scripts from a version of WebLogic Platform earlier than 7.0 SP3, the JVM will abort when it encounters any -XX command line options (these were silently ignored in previous versions of WebLogic JRockit). Therefore, you must remove these options from all scripts run when using these two products together. These scripts include:
This situation will not occur if you are using scripts from WebLogic Platform 7.0 SP3 or later.
Platform Scripts that Use -XX Options
The platform scripts that use Java -XX option are listed below. Locations are relative to the WebLogic Server home path (WL_HOME); for example: /bea/weblogic700.integration/setEnv.cmd.
These documents have been rewritten for this release and it is recommended that you update your document set with the latest versions. You can locate these documents at:
You can print a copy of any WebLogic JRockit 7.0 SDK document from a Web browser, one file at a time, by using the File>Print option on the browser.
PDF versions of all WebLogic JRockit 7.0 SDK documents are available on the WebLogic JRockit 7.0 SDK documentation pages on the e-docs Web site (http://download.oracle.com/docs/cd/E13188_01/jrockit/docs70/index.html). You can open the PDF in Adobe Acrobat Reader and print the entire document (or a portion of it) in book format. To access and print the PDFs, do the following:
Open the web page for the WebLogic JRockit 7.0 SDK document you want to print and click the view as PDF icon.
A new browser launches, running the Adobe Acrobat Reader, which contains the PDF version of the document you selected.
Click the print button on the Adobe Acrobat Reader toolbar.
The Print dialog box appears.
Select the Print range (All, Current page, or Pages from) and click OK to print the document.
If you do not have the Adobe Acrobat Reader, you can get it for free from the Adobe Web site at http://www.adobe.com/.
Note About OS Support
BEA will support WebLogic JRockit 7.0 SDKand provide bug fixes on only those operating system distributions that have been certified by BEA. While it may be possible to run WebLogic JRockit 7.0 SDK on other non-certified distributions, BEA makes no such guarantees. In addition, BEA will not be responsible for providing any bug fixes for non-certified distributions.