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

Hang in KeyboardFocusManager.shouldNativelyFocusHeavyweight() and Component.requ

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P1 P1
    • 1.4.0
    • 1.4.0
    • client-libs
    • beta2
    • x86
    • windows_nt, windows_2000
    • Verified


      Updated information: it may not be necessary to follow all of
      the steps below. A hang may occur at different points. The bug
      may be considered fixed if you can successfully execute all 20
      steps.

      > Steps to reproduce Bug1869077 in 11.5.4 :
      > ( Keyboard focus lost when minimizing the window )
      >
      > 1 - > Start a fresh Netscape session with 4.76 or higher on
      > a WinNT machine with JDK 1.4 plugin build 74 installed
      > 2 - > Go to URL http://dnm-005.eng.sun.com:8000/OA_HTML/merlin.html
      > ( If you get a Java Plugin Secutiry Warning for the certificate
      > click on the Grant Always or Grant this Session )
      > 3 - > When Oracle Application comes up
      > Username = mfg
      > Password = welcome
      > Click on Connect
      > 4 - > The "Responsibility" window comes up.
      > Select "Manufacturing and Distribution Manager"
      > Click OK
      > 5 - > The Navigator window comes up.
      > 6 - > Minimize the Navigator window by clicking
      > on down arrow key on the left top corner of the window.
      > 7 - > Restore it by clicking on the restore icon next the X
      > on the minimized window.
      > 8 - > Click on Inventory-> Transactions-> Receiving -> Receipts
      > on the Navigator.
      > 9 - > Organization window comes up.
      > Select "M1 Seatle Manufacturing"
      >
      > 10- > Minimize the "Find Expected Receipts" window by clicking on
      > down arrow on the left corner.
      > 11- > Minimize the "Receipts" window in the same way
      > 12- > Minimize the "Navigator" window in the same way
      > 13- > Maximize the "Find Expected Receipts" window by clicking on
      > up arrow key on the minimized window.
      >
      > 14- > Click on Find button
      > 15- > Minimize the "Receipt Header" window
      > 16- > Minimize the "Receipt" window
      > 17- > Change the Source Type to "Supplier" in "Find Expected Receipts"
      > Window. Click on Find button.
      > 18- > Click on Details tab in Receipts window
      > 19- > Minimize the Receipts window
      > 20- > Minimize the Find Expected Receipts window

      Name: dm26566 Date: 08/16/2001


      Oracle has implemented its own GUI toolkit with UI components similar
      to Swing. We are getting a hang in a call to requestFocus() in
      certain cases. I have yet to create a Sun only testcase but
      will continue to work on creating one. I thought I should get
      this filed ASAP since this bug was introduced in build 74. It did
      not exist prior to build 74. As far as I can tell it has something to
      do with a container that isFocusTraversable() that contains children
      that are isFocusTraversable(). Here is the thread dump from the hang:

      Full thread dump Java HotSpot(TM) Client VM (1.4.0-beta_refresh-b74 mixed mode):

      "CursorIdler" prio=4 tid=0x007CC7B0 nid=0xf5 waiting on monitor [96af000..96afdc0]
             at java.lang.Object.wait(Native Method)
             - waiting on <02E69918> (a oracle.ewt.timer.Periodic)
             at java.lang.Object.wait(Object.java:425)
             at oracle.ewt.timer.Timer._waitTilScheduled(Unknown Source)
             - locked <02E69918> (a oracle.ewt.timer.Periodic)
             at oracle.ewt.timer.Timer.run(Unknown Source)
             at java.lang.Thread.run(Thread.java:576)

      "AWT-EventQueue-1" prio=4 tid=0x007AE240 nid=0xff runnable [959f000..959fdc0]
             at sun.awt.windows.WComponentPeer.requestFocus(Native Method)
             at java.awt.Component.requestFocusHelper(Component.java:5992)
             at java.awt.Component.requestFocus(Component.java:5821)
             at oracle.ewt.lwAWT.lwText.LWTextComponent.requestFocus(Unknown Source)
             at oracle.ewt.lwAWT.lwWindow.LWWindow$FocusTransferComp.processFocusEvent(LWWindow.java:2973)
             at java.awt.Component.processEvent(Component.java:4782)
             at java.awt.Container.processEvent(Container.java:1383)
             at oracle.ewt.lwAWT.LWComponent.processEventImpl(Unknown Source)
             at oracle.ewt.lwAWT.LWComponent.redispatchEvent(Unknown Source)
             at oracle.ewt.lwAWT.LWComponent.processEvent(Unknown Source)
             at java.awt.Component.dispatchEventImpl(Component.java:3501)
             at java.awt.Container.dispatchEventImpl(Container.java:1440)
             at java.awt.Component.dispatchEvent(Component.java:3363)
             at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1658)
             at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:692)
             at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:396)
             at java.awt.Component.dispatchEventImpl(Component.java:3392)
             at java.awt.Container.dispatchEventImpl(Container.java:1440)
             at java.awt.Component.dispatchEvent(Component.java:3363)
             at java.awt.KeyboardFocusManager.retargetFocusEvent(KeyboardFocusManager.java:2249)
             - locked <02E04B48> (a java.util.LinkedList)
             at java.awt.Component.dispatchEventImpl(Component.java:3387)
             at java.awt.Container.dispatchEventImpl(Container.java:1440)
             at java.awt.Component.dispatchEvent(Component.java:3363)
             at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3176)
             at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2906)
             at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2842)
             at java.awt.Container.dispatchEventImpl(Container.java:1426)
             at java.awt.Window.dispatchEventImpl(Window.java:1568)
             at java.awt.Component.dispatchEvent(Component.java:3363)
             at java.awt.EventQueue.dispatchEvent(EventQueue.java:448)
             at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:150)
             at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
             at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:131)
             at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)

      "TaskScheduler timer" prio=4 tid=0x007AE370 nid=0x10c waiting on monitor [955f000..955fdc0]
             at java.lang.Object.wait(Native Method)
             - waiting on <02E2F218> (a oracle.ewt.timer.Timer)
             at java.lang.Object.wait(Object.java:425)
             at oracle.ewt.timer.Timer._waitTilScheduled(Unknown Source)
             - locked <02E2F218> (a oracle.ewt.timer.Timer)
             at oracle.ewt.timer.Timer.run(Unknown Source)
             at java.lang.Thread.run(Thread.java:576)

      "Thread-2" prio=5 tid=0x00794430 nid=0x75 waiting on monitor [0..6fb38]

      "AWT-EventQueue-0" prio=7 tid=0x00794DB0 nid=0xe6 waiting on monitor [951f000..951fdc0]
             at java.lang.Object.wait(Native Method)
             - waiting on <02E037A0> (a java.awt.EventQueue)
             at java.lang.Object.wait(Object.java:425)
             at java.awt.EventQueue.getNextEvent(EventQueue.java:332)
             - locked <02E037A0> (a java.awt.EventQueue)
             at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:145)
             at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
             at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:131)
             at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)

      "AWT-Shutdown" prio=7 tid=0x00789BA0 nid=0xd6 waiting on monitor [94df000..94dfdc0]
             at java.lang.Object.wait(Native Method)
             - waiting on <02DEFF88> (a java.lang.Object)
             at java.lang.Object.wait(Object.java:425)
             at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:262)
             - locked <02DEFF88> (a java.lang.Object)
             at java.lang.Thread.run(Thread.java:576)

      "thread applet-oracle/ewt/lwAWT/demo/blaf/BLAFDemo.class" prio=4 tid=0x00786180 nid=0xe5 waiting on monitor [948f000..94
      8fdc0]
             at java.lang.Object.wait(Native Method)
             - waiting on <02E035E8> (a sun.applet.AppletViewerPanel)
             at java.lang.Object.wait(Object.java:425)
             at sun.applet.AppletPanel.getNextEvent(AppletPanel.java:269)
             - locked <02E035E8> (a sun.applet.AppletViewerPanel)
             at sun.applet.AppletPanel.run(AppletPanel.java:301)
             at java.lang.Thread.run(Thread.java:576)

      "AWT-Windows" daemon prio=7 tid=0x00783AC0 nid=0xdc waiting for monitor entry [8fef000..8fefdc0]
             at java.awt.KeyboardFocusManager.shouldNativelyFocusHeavyweight(KeyboardFocusManager.java:1991)
             - waiting to lock <02E04B48> (a java.util.LinkedList)
             at sun.awt.windows.WToolkit.eventLoop(Native Method)
             at sun.awt.windows.WToolkit.run(WToolkit.java:222)
             at java.lang.Thread.run(Thread.java:576)

      "Signal Dispatcher" daemon prio=10 tid=0x0076B5E0 nid=0x103 waiting on monitor [0..0]

      "Finalizer" daemon prio=9 tid=0x00767880 nid=0x6b waiting on monitor [8c6f000..8c6fdc0]
             at java.lang.Object.wait(Native Method)
             - waiting on <02DD7ED8> (a java.lang.ref.ReferenceQueue$Lock)
             at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:114)
             - locked <02DD7ED8> (a java.lang.ref.ReferenceQueue$Lock)
             at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:129)
             at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:162)

      "Reference Handler" daemon prio=10 tid=0x007664D0 nid=0x109 waiting on monitor [8c2f000..8c2fdc0]
             at java.lang.Object.wait(Native Method)
             - waiting on <02DD7F40> (a java.lang.ref.Reference$Lock)
             at java.lang.Object.wait(Object.java:425)
             at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
             - locked <02DD7F40> (a java.lang.ref.Reference$Lock)

      "VM Thread" prio=5 tid=0x00765710 nid=0xfb runnable

      "VM Periodic Task Thread" prio=10 tid=0x0076A960 nid=0xac waiting on monitor
      "Suspend Checker Thread" prio=10 tid=0x0076A030 nid=0x102 runnable
      (Review ID: 129571)
      ======================================================================

            mmartaksunw Michael Martak (Inactive)
            dmcduffisunw Dale Mcduffie (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: