There have historically been many reports of problems running applets
when a large -Xmx setting has been specified via the Java Control
Panel. Some bugs where this either definitely is the root cause, or
may be the root cause, include 6359309, 6433218, 6516270, 6528750, and
Up until recently, it was not technically feasible to fix this problem
in the Java Plug-In due to its in-process architecture.
In recent months a new implementation of the Java Plug-In has been
developed which changes the execution model of applets. Instead of
running the applets in a JVM embedded in the web browser's process,
they are now run in a separate JVM process which communicates back to
the web browser. The initial checkin of this work done under bug ID
This new plug-in solves this problem in two ways. First, since the JVM
is no longer running in the same process as the web browser, the
address space fragmentation problem (which occurs most often in the
Internet Explorer browser) does not interfere with the specification
of a large -Xmx value via the Java Runtime Parameters in the Java
Second, the new Java Plug-In supports specification of JVM
command-line arguments, including -Xmx, on a per-applet basis via a
new java_arguments parameter in the applet's HTML. This eliminates the
need to do any global setting of this or other parameters in the Java
The new Java Plug-In is currently available for testing in the early
access builds of the "6uN" release, which can be downloaded from
https://jdk6.dev.java.net/6uNea.html . See
https://jdk6.dev.java.net/testPlugIn.html for instructions on testing
the new Java Plug-In specifically. In 6uN build 10, the new Java
Plug-In is enabled by default upon installation on the Windows
platform; see the testing instructions for installation on the Solaris
and Linux platforms.
Customer feedback so far indicates that the new Java Plug-In
conclusively solves this longstanding problem.
For tracking purposes, this bug is being closed as a duplicate of
6622332, which is the "umbrella" bug covering the initial integration
of the new Java Plug-In.
Note that currently the new plug-in does not change the default heap
size for applets, but we believe that this will be far less of an
issue now that an individual applet can request a particular heap
size. We are open to revisiting this particular issue, in particular
in the context of the new plug-in.
Please try the new Java Plug-In and file any issues against it under
product java, category java_plugin, subcategory plugin2.
Based on the error message, the bug is very likely to be a duplicate of CR 6528750 and 6433218. JVM need a contiguous piece of virtual address space for the java object heap. When IE has been running for a while, the virtual space gets chopped up and a large contiguos chunk of the space becomes hard to find. The error messages indicate that java plugin either cannot load jvm or cannot allocate java heap.
To verify that the issue is caused by fragmentation of IE address space, we can walk over the entire address space of IE and get information about a contiguous set of pages.
One short term solution is to provide more user friendly error messages to enhance user experience (see CR 6433218). A long term solutions may be either non-contiguous java heap or a out of proc java plugin (jvm runs in its own process and address space independent of browsers). The latter is in the works.