-
Bug
-
Resolution: Fixed
-
P3
-
6u10, 6u11-rev
-
b01
-
x86
-
windows_vista
-
Not verified
When string object with the size of about 5 M-bytes is submitted, Applet is freezed with such a "JVM heartbeat .. dead, send ts: 6323053543, now ts: 6333053288, dT 9999745" message.
- STEPS TO FOLLOW TO REPRODUCE THE PROBLEM:
OS: Windows XP SP2
Browser: IE6/IE7
JRE: 6u10/6u11
1. Make "test" directory and change the directory
2. Save the following codes
3. Compile the following java code (with -classpath "C:\Program Files\Java\jdk1.6.0_10\jre\lib\plugin.jar")
4. Create TestApplet.jar with test\TestApplet$1.class and test\TestApplet.class
5. Run the following HTML code
6. Input "5" as the data size in Applet
- EXPECTED VERSUS ACTUAL BEHAVIOR:
EXPECTED:
Such a "JVM heartbeat" message does not appear like JRE 6u07.
ACTUAL:
When string object with the size of about 5 M-bytes is submitted, Applet is freezed with such a "JVM heartbeat .. dead, send ts: 6323053543, now ts: 6333053288, dT 9999745" message.
OUTPUT (Java Console) xxx: Japanese
----------------------------------------------------------------------------
basic: xxxxxxxxxxxxxxxxxxxxxxxxxx: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@152544e
basic: xxxxxxxxxxxxxxxxxxxxxx
basic: Applet resized and added to parent container
basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 689351 us, pluginInit dt 2999658 us, TotalTime: 3689009 us
basic: Applet initialized
basic: xxxxxxxxxxxxxxxxxxxxxxxxxx: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@152544e
basic: Applet made visible
basic: Starting applet
basic: Applet started
basic: Told clients applet is started
Write size : 5242880 byte
Start : Thu Dec 18 22:56:32 JST 2008
JVM heartbeat .. dead, send ts: 48285414798, now ts: 48295408592, dT 9993794
----------------------------------------------------------------------------
For the following source code, "JVM heartbeat" message is always displayed when the value of 5M or more is input, while Java Plug-in 2 is available.
---------- BEGIN SOURCE ----------
package test;
import java.awt.*;
import java.awt.event.*;
import java.util.Date;
import javax.swing.*;
import netscape.javascript.JSObject;
public class TestApplet extends JApplet {
int size = 1;
JTextField inpText=new JTextField(2);
private static final long serialVersionUID = 1L;
public TestApplet() throws HeadlessException {
}
public void init() {
JPanel p1=new JPanel();
p1.setBackground(new Color(0xFFFFFF));
this.getContentPane().add(p1);
inpText.setText(String.valueOf(size));
JButton btn=new JButton("exe");
btn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
execute();
}
});
p1.add(new JTextArea("size : "));
p1.add(inpText);
p1.add(new JTextArea("M "));
p1.add(btn);
}
public void execute() {
JSObject win = JSObject.getWindow(this);
int sizeWrite = Integer.valueOf(inpText.getText()).intValue();
size = sizeWrite * 1048576;
StringBuffer stringBuffer = new StringBuffer(size);
for (int i1 = 0; i1 < size; i1++) {
stringBuffer.append('a');
}
System.out.println("Write size : " + size +" byte");
System.out.println("Start : " + new Date());
win.call("setResultXml", new Object[]{stringBuffer.toString()});
System.out.println("Done : " + new Date());
}
}
---------- END SOURCE ------------
---------- BEGIN HTML-SOURCE ----------
<HTML>
<HEAD>
<SCRIPT type="text/javascript">
function setResultXml(resultXml) {
}
</SCRIPT>
</HEAD>
<BODY>
<h1>LiveConnect Write Test</h1>
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
width="200" height="100" align="baseline">
<PARAM NAME="code" VALUE="test.TestApplet.class">
<PARAM NAME="codebase" VALUE=".">
<PARAM NAME="type" VALUE="application/x-java-applet">
<PARAM NAME="archive" VALUE="TestApplet.jar">
<PARAM NAME="MAYSCRIPT" VALUE="true">
No JRE support for APPLET !
</OBJECT>
<FORM name="testForm">
<INPUT type="hidden" name="testItem">
</FORM>
</BODY>
</HTML>
---------- END HTML-SOURCE ------------
Bug WorkaroundWhen Java Plug-in 2 option is not checked, the above test program works normally.
- STEPS TO FOLLOW TO REPRODUCE THE PROBLEM:
OS: Windows XP SP2
Browser: IE6/IE7
JRE: 6u10/6u11
1. Make "test" directory and change the directory
2. Save the following codes
3. Compile the following java code (with -classpath "C:\Program Files\Java\jdk1.6.0_10\jre\lib\plugin.jar")
4. Create TestApplet.jar with test\TestApplet$1.class and test\TestApplet.class
5. Run the following HTML code
6. Input "5" as the data size in Applet
- EXPECTED VERSUS ACTUAL BEHAVIOR:
EXPECTED:
Such a "JVM heartbeat" message does not appear like JRE 6u07.
ACTUAL:
When string object with the size of about 5 M-bytes is submitted, Applet is freezed with such a "JVM heartbeat .. dead, send ts: 6323053543, now ts: 6333053288, dT 9999745" message.
OUTPUT (Java Console) xxx: Japanese
----------------------------------------------------------------------------
basic: xxxxxxxxxxxxxxxxxxxxxxxxxx: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@152544e
basic: xxxxxxxxxxxxxxxxxxxxxx
basic: Applet resized and added to parent container
basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 689351 us, pluginInit dt 2999658 us, TotalTime: 3689009 us
basic: Applet initialized
basic: xxxxxxxxxxxxxxxxxxxxxxxxxx: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@152544e
basic: Applet made visible
basic: Starting applet
basic: Applet started
basic: Told clients applet is started
Write size : 5242880 byte
Start : Thu Dec 18 22:56:32 JST 2008
JVM heartbeat .. dead, send ts: 48285414798, now ts: 48295408592, dT 9993794
----------------------------------------------------------------------------
For the following source code, "JVM heartbeat" message is always displayed when the value of 5M or more is input, while Java Plug-in 2 is available.
---------- BEGIN SOURCE ----------
package test;
import java.awt.*;
import java.awt.event.*;
import java.util.Date;
import javax.swing.*;
import netscape.javascript.JSObject;
public class TestApplet extends JApplet {
int size = 1;
JTextField inpText=new JTextField(2);
private static final long serialVersionUID = 1L;
public TestApplet() throws HeadlessException {
}
public void init() {
JPanel p1=new JPanel();
p1.setBackground(new Color(0xFFFFFF));
this.getContentPane().add(p1);
inpText.setText(String.valueOf(size));
JButton btn=new JButton("exe");
btn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
execute();
}
});
p1.add(new JTextArea("size : "));
p1.add(inpText);
p1.add(new JTextArea("M "));
p1.add(btn);
}
public void execute() {
JSObject win = JSObject.getWindow(this);
int sizeWrite = Integer.valueOf(inpText.getText()).intValue();
size = sizeWrite * 1048576;
StringBuffer stringBuffer = new StringBuffer(size);
for (int i1 = 0; i1 < size; i1++) {
stringBuffer.append('a');
}
System.out.println("Write size : " + size +" byte");
System.out.println("Start : " + new Date());
win.call("setResultXml", new Object[]{stringBuffer.toString()});
System.out.println("Done : " + new Date());
}
}
---------- END SOURCE ------------
---------- BEGIN HTML-SOURCE ----------
<HTML>
<HEAD>
<SCRIPT type="text/javascript">
function setResultXml(resultXml) {
}
</SCRIPT>
</HEAD>
<BODY>
<h1>LiveConnect Write Test</h1>
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
width="200" height="100" align="baseline">
<PARAM NAME="code" VALUE="test.TestApplet.class">
<PARAM NAME="codebase" VALUE=".">
<PARAM NAME="type" VALUE="application/x-java-applet">
<PARAM NAME="archive" VALUE="TestApplet.jar">
<PARAM NAME="MAYSCRIPT" VALUE="true">
No JRE support for APPLET !
</OBJECT>
<FORM name="testForm">
<INPUT type="hidden" name="testItem">
</FORM>
</BODY>
</HTML>
---------- END HTML-SOURCE ------------
Bug WorkaroundWhen Java Plug-in 2 option is not checked, the above test program works normally.
- duplicates
-
JDK-6763545 JSException on JSObject.getMember with long data
- Closed