Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 4674761
Votes 15
Synopsis Plug-in and Netscape both freeze after a modal dialog is launched from JavaScrip
Category java_plugin:plugin
Reported Against 1.4
Release Fixed 1.4.1_05
State 10-Fix Delivered, Verified, bug
Priority: 3-Medium
Related Bugs
Submit Date 25-APR-2002
Description




FULL PRODUCT VERSION :
java version "1.3.1_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_03-b03)
Java HotSpot(TM) Client VM (build 1.3.1_03-b03, mixed mode)


FULL OPERATING SYSTEM VERSION :
Microsoft Windows 2000 [Wersja 5.00.2195]

ADDITIONAL OPERATING SYSTEMS :
Windows 98
Windows 98 SE


EXTRA RELEVANT SYSTEM CONFIGURATION :
Netscape 6, version 6.2
Mozilla, build 2002041711

A DESCRIPTION OF THE PROBLEM :
Basically speaking, bug identical to 4506751 (which regards
Java Plugin for Internet Explorer and was fixed) cause
lock-up problem in Java Plugin for Netscape.
The problem is that the browser and plug-in become locked-up
after a modal dialog is shown when invoked via JavaScript.
I have been able to reproduce this problem with Java Plug-in
1.3.0, 1.3.1, and 1.4.0.  As the most simple scenario,
imagine an HTML document with an Applet and a form with a
button that has a JavaScript method that is called when the
button is pressed.
The onPressed event calls a JavaScript method that gets the
Applet and then makes a call into a method that brings up a
modal dialog.  This modal dialog can be a Swing Dialog such
as JOptionPane or a custom dialog. It does not matter.
I think bug is in one of npjava*.dll.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Identical to ones listed in report for bug 4506751.

EXPECTED VERSUS ACTUAL BEHAVIOR :
Expected: Dialog shown should get input from user.
Actual: Dialog shows and browser freezes.

ERROR MESSAGES/STACK TRACES THAT OCCUR :
None - JVM hangs.

This bug can be reproduced always.

---------- BEGIN SOURCE ----------
HTML page:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<title>
HTML Test Page
</title>
</head>
<body>
AppletTest will appear below in a Java enabled browser.<br>
<applet
  codebase = "."
  code     = "AppletTest.class"
  name     = "TestApplet"
  width    = "400"
  height   = "300"
  hspace   = "0"
  vspace   = "0"
  align    = "middle"
  scriptable = true
  mayscript = true
>
</applet>
<INPUT VALUE="J" TYPE="button"
onClick="document.applets[0].showJOption();alert('after')">
</body>
</html>

Java applet:
import java.awt.*;
import java.io.*;
import javax.swing.*;

public class AppletTest extends JApplet {

  public AppletTest() {
  }

  public void init() {
    super.init();
  }

  public void showJOption() {
    System.out.println("showJ enter");

    Frame f = (Frame)SwingUtilities.getRoot(this);
 
JOptionPane.showMessageDialog(f,"Message","Title",JOptionPane.INFORMATION_MESSAGE);

    System.out.println("showJ exit");
  }
}

---------- END SOURCE ----------

CUSTOMER WORKAROUND :
None found.
(Review ID: 145817) 
======================================================================
Work Around
N/A
Evaluation
When Java method called from JavaScript pops up a modal dialog box, java plug-in wants to disable the browser window, at the same time browser is waiting for the java method to complete and hence we have a deadlock situation. This problem can be fixed by not completely blocking while making the java calls from javascript.
This will be fixed as part of 4516042
 xxxxx@xxxxx  2002-04-25

This bug is fixed for IE as part of 4516042, we need to provide similar fix for netscape
 xxxxx@xxxxx  2002-05-10

Confirmed in NS 7.

 xxxxx@xxxxx  2002-07-31

The solution:

Having javascript to java call executing on new java thread, and having the calling thread continues to dispatch message.


 xxxxx@xxxxx  2002-09-11
Comments
  
  Include a link with my name & email   

Submitted On 13-MAY-2002
bbszla
In Linux/Debian with Mozilla there is this bug too.


Submitted On 03-MAY-2003
MichalHobot
Now it's more then a year from submitting the bug and fixed
software is not yet released!!
How can you put "closed, fixed" when in fact this bug still
exist in all Java SDKs I can download?



PLEASE NOTE: JDK6 is formerly known as Project Mustang