JDK-6572867 : Java Print Dialog not disposed when the applet is reloaded - Exception thrown
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 7
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: solaris_10
  • CPU: sparc
  • Submitted: 2007-06-22
  • Updated: 2011-01-19
  • Resolved: 2007-12-05
Related Reports
Duplicate :  
Description
Run the attached test (Applet) on Mozilla with any JDK7 build (b03 or later). When the applet gets loaded, I am opening a page dialog. When the page dialog is alive, I am clicking on the browser's 'back' button. Now I expect all the windows to be disposed. But the code still gets executed and a PrintDialog comes up though the browser contents have been restored to previous. After this, the dialog does not go away and I had to kill the browser to close the dialog. 

The above behavior is seen atleast since JDK6-beta but there is a new exception on clicking the 'Back' button from JDK7-b03. This does not happen on b02 or JDK6. 

Here is the exception shown on the Java Console: 

Exception in thread "TimerQueue" java.lang.IllegalMonitorStateException
at java.util.concurrent.locks.ReentrantLock$Sync.tryRelease(ReentrantLock.java:127)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.release(AbstractQueuedSynchronizer.java:1140)
at java.util.concurrent.locks.ReentrantLock.unlock(ReentrantLock.java:431)
at java.util.concurrent.DelayQueue.take(DelayQueue.java:176)
at javax.swing.TimerQueue.run(TimerQueue.java:153)
at java.lang.Thread.run(Thread.java:619)

This is not reproducible on Win32. I reproduced it on SolSparc10-JDS.

To reproduce the bug, do the following -

1. Set MOZ_PLUGIN_PATH to the test JDK's jre/plugin/sparc/ns7 folder (JDK7-b03+). 
2. Launch Mozilla.
3. Load the applet. 
4. Click on the button in the applet. A page dialog would come up. 
5. Keeping the page dialog alive, click on the 'Back' button of the browser. 

You will see that page dialog gets disposed but a print dialog comes up and stays on the screen forever. Also you would see the above exception on the java-console.