United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 7016482 Default progress dialog stays there while launching jnlp applications under some scenarios
7016482 : Default progress dialog stays there while launching jnlp applications under some scenarios

Details
Type:
Bug
Submit Date:
2011-02-01
Status:
Closed
Updated Date:
2013-01-08
Project Name:
JDK
Resolved Date:
2011-11-17
Component:
deploy
OS:
windows_7,windows
Sub-Component:
deployment_toolkit
CPU:
x86,generic
Priority:
P2
Resolution:
Fixed
Affected Versions:
7
Fixed Versions:
7u2

Related Reports
Backport:
Duplicate:
Relates:

Sub Tasks

Description
Tested Builds : promoted jdk7-b127 and latest jdk7b128-pit bundles
OS Tested: IE7/8/9 and FF3.6/FF4

Under some scenarios once jnlp application or applet is tried to be launched then progress download window stays there and one has to close the progress dialog(using X button) in order to get the application/applet launched
Issue is seen with jdk7-b127 and latest b128 PIt bundles. Issue is not reproducible with b126

Steps to reproduce:
-------------------
Install jdkb-127 or latest PIT bundles
I) Launching from browser
- Try to launch following jnlp using browser
Note: In case of IE sometimes launch fails on first attempt and one has to try to launch the application again(separate CR will be opened to track that issue)
http://mossad.us.oracle.com:8080/basicAuth/tests/BAT.jnlp
http://mossad.us.oracle.com:8080/basicAuth/tests/TestIndexingSigned.jnlp
- Enter following info against basic Authentication pop-ups coming from Browser and Java 
   user : jituB
   pass: jitu20
- Accept the security pop-up (should be there while running TestIndexingSigned.jnlp)
- If download progress window stays there then bug is reproduced
- Close dialog using "X" , then you can notice that application/applet will get launched successfully
II) Launching from javaws command line
In this case only applets has some issues
- Run following applet as 
javaws http://mossad.us.oracle.com:8080/basicAuth/tests/TestIndexingSigned.jnlp
- Enter following info against basic Authentication pop-ups coming from Java 
   user : jituB
   pass: jitu20
- Click Cancel On the security pop-up and If download progress window stays there then bug is reproduced

                                    

Comments
EVALUATION

The problem is happens because progress dialog is shown when other modal dialog is up
and progress events can not be delivered until modal dialog is dismissed. 
E.g. it is proxy authentication dialog, etc.

If this is the case then we may end up with interesting "deadlock"-like behavior:
  - modal dialog will spawn new nested event loop
  - progress dialog will be shown on the loop
  - loop can not be dismissed until all dialogs shown on it are closed
  - until loop is dismissed modal dialog will not return user response
  - without user response we can not download anything
  - until we download everything progress dialog is up
  - At this point we are stuck unless user will close progress dialog too

Solution:
  if we want to show dialog on idle - do not do this if other dialogs are visible. Retry later.
  Note that if we show dialog on progress event then 
  we can hope we will download everything and close progress dialog (so no deadlock will happen)
                                     
2011-09-20
EVALUATION

add jstack output when DownloadWindow hang.
                                     
2011-02-16
EVALUATION

Once ProgressChecker thread stop when queue is empty, there's no way to relaunch it again and the PreloaderDelegate will never deleiver DownloadEvent to preloader.
I don't think it's necessary for ProgressCheckerThread stop for a WAIT_CYLCE because it might take a while for user to response (enter password in this testcase)
                                     
2011-02-15



Hardware and Software, Engineered to Work Together