Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6361766

REG: Application does not exit after printing through a native print dialog, WinXP

    Details

    • Subcomponent:
      2d
    • Resolved In Build:
      b67
    • CPU:
      x86
    • OS:
      windows_xp
    • Verification:
      Verified

      Description

      I am opening a native print dialog by calling PrinterJob.printDialog() and clicking on the 'print' button. Once the print data is printed, I expect the application to terminate (there is no code after the print() call) but the application is not terminating. It just waits there for ever. This happens regardless of whether I print the contents or cancel the dialog.

      This is reproducible on WinXP only on Mustang. This is not reproducible with Mustang-b51 but reproducible on Mustang-b53. Hence this is a regression introduced in either b52 or b53.

      I have attached a sample test. Execute the sample test. You would see a native print dialog on the screen. Press 'ESC'. The native dialog gets disposed. Check whether the application has terminated. If not, the bug is reproduced.

      Here is the thread dump:
      -------------------------
      Full thread dump Java HotSpot(TM) Client VM (1.6.0-rc-b61 mixed mode):

      "DestroyJavaVM" prio=6 tid=0x00036400 nid=0x127e0 waiting on condition [0x000000
      00..0x008ffd4c]
         java.lang.Thread.State: RUNNABLE

      "AWT-EventQueue-0" prio=6 tid=0x0ae2b600 nid=0x11724 in Object.wait() [0x0b6bf00
      0..0x0b6bfd14]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x02e85ff0> (a java.awt.EventQueue)
              at java.lang.Object.wait(Object.java:484)
              at java.awt.EventQueue.getNextEvent(EventQueue.java:480)
              - locked <0x02e85ff0> (a java.awt.EventQueue)
              at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
      ad.java:245)
              at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
      java:183)
              at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
      ad.java:173)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)

              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)

              at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

      "Thread-2" daemon prio=6 tid=0x0ae2a600 nid=0x127f8 runnable [0x0b5ef000..0x0b5e
      fa14]
         java.lang.Thread.State: RUNNABLE
              at sun.print.Win32PrintServiceLookup.notifyPrinterChange(Native Method)
              at sun.print.Win32PrintServiceLookup.access$100(Win32PrintServiceLookup.
      java:32)
              at sun.print.Win32PrintServiceLookup$PrinterChangeListener.run(Win32Prin
      tServiceLookup.java:302)

      "AWT-Windows" daemon prio=6 tid=0x0ade5000 nid=0x1215c runnable [0x0b07f000..0x0
      b07fa94]
         java.lang.Thread.State: RUNNABLE
              at sun.awt.windows.WToolkit.eventLoop(Native Method)
              at sun.awt.windows.WToolkit.run(WToolkit.java:290)
              at java.lang.Thread.run(Thread.java:626)

      "AWT-Shutdown" prio=6 tid=0x0ade1500 nid=0x401c in Object.wait() [0x0b02f000..0x
      0b02fb14]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x02a10510> (a java.lang.Object)
              at java.lang.Object.wait(Object.java:484)
              at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
              - locked <0x02a10510> (a java.lang.Object)
              at java.lang.Thread.run(Thread.java:626)

      "Java2D Disposer" daemon prio=10 tid=0x0adde500 nid=0x6440 in Object.wait() [0x0
      afdf000..0x0afdfb94]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x02a105a8> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
              - locked <0x02a105a8> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
              at sun.java2d.Disposer.run(Disposer.java:123)
              at java.lang.Thread.run(Thread.java:626)

      "Low Memory Detector" daemon prio=6 tid=0x0aaf6100 nid=0x12420 runnable [0x00000
      000..0x00000000]
         java.lang.Thread.State: RUNNABLE

      "CompilerThread0" daemon prio=10 tid=0x0aaf3b00 nid=0x11f28 waiting on condition
       [0x00000000..0x0acdf764]
         java.lang.Thread.State: RUNNABLE

      "Attach Listener" daemon prio=10 tid=0x0aaf2c00 nid=0x11bc0 runnable [0x00000000
      ..0x00000000]
         java.lang.Thread.State: RUNNABLE

      "Signal Dispatcher" daemon prio=10 tid=0x0aaf2100 nid=0x11900 waiting on conditi
      on [0x00000000..0x00000000]
         java.lang.Thread.State: RUNNABLE

      "Finalizer" daemon prio=8 tid=0x0aae5f00 nid=0x5b20 in Object.wait() [0x0abef000
      ..0x0abefa94]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x02a10800> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
              - locked <0x02a10800> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
              at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

      "Reference Handler" daemon prio=10 tid=0x0aae1d00 nid=0x127f0 in Object.wait() [
      0x0ab9f000..0x0ab9fb14]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x02a10890> (a java.lang.ref.Reference$Lock)
              at java.lang.Object.wait(Object.java:484)
              at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
              - locked <0x02a10890> (a java.lang.ref.Reference$Lock)

      "VM Thread" prio=10 tid=0x0aadee00 nid=0x107c runnable

      "VM Periodic Task Thread" prio=10 tid=0x0aaf7400 nid=0x44f0 waiting on condition


      JNI global references: 652

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                jgodinez Jennifer Godinez (Inactive)
                Reporter:
                pmohansunw Praveen Mohan (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Imported:
                  Indexed: