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

deadlock issue between repaint thread and event thread

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not an Issue
    • Icon: P4 P4
    • None
    • 1.2.0
    • client-libs



      Name: rm29839 Date: 07/21/98


      It looks like a deadlock issue when bringing up a
      large Swing-based application and it seems to
      be contention between a repaint thread and an
      event thread, neither of which appear to be
      controllable by the end developer.




      > Full thread dump:
      > "AWT-Finalizer" (TID:0x1255608, sys_thread_t:0x942c90,
      > Win32ID:0x62, state:CW, resumestate:R, st
      > ack base:433ff6c) prio=8
      > java.lang.Object.wait(Object.java:315)
      > sun.awt.AWTFinalizer.run(AWTFinalizer.java:48)
      > "Screen Updater" (TID:0x1213cd0, sys_thread_t:0x9402c0,
      > Win32ID:0xac, state:CW, resumestate:R, s
      > tack base:422ff6c) prio=4
      > java.lang.Object.wait(Object.java:315)
      > sun.awt.ScreenUpdater.nextEntry(ScreenUpdater.java:78)
      > sun.awt.ScreenUpdater.run(ScreenUpdater.java:98)
      > "AWT-Dispatch-Proxy" (TID:0x1253bc0, sys_thread_t:0x933de0,
      > Win32ID:0xa4, state:CW, resumestate:
      > R, stack base:3f5ff6c) prio=5
      > java.lang.Object.wait(Object.java:315)
      >
      > java.awt.swing.text.AbstractDocument.readLock(AbstractDocument.java:683)
      >
      >
      > java.awt.swing.text.AbstractDocument.render(AbstractDocument.java:250)
      >
      >
      > java.awt.swing.plaf.basic.BasicTextUI.paint(BasicTextUI.java:504)
      > java.awt.swing.plaf.ComponentUI.update(ComponentUI.java:47)
      > java.awt.swing.JComponent.paintComponent(JComponent.java:322)
      > java.awt.swing.JComponent.paint(JComponent.java:534)
      > java.awt.swing.JComponent.paintChildren(JComponent.java:382)
      > java.awt.swing.JComponent.paint(JComponent.java:537)
      > java.awt.swing.JComponent.paintChildren(JComponent.java:382)
      > java.awt.swing.JComponent.paint(JComponent.java:537)
      > java.awt.swing.JComponent.paintChildren(JComponent.java:382)
      > java.awt.swing.JComponent.paint(JComponent.java:537)
      > java.awt.swing.JComponent.paintChildren(JComponent.java:382)
      > java.awt.swing.JComponent.paint(JComponent.java:537)
      > java.awt.swing.JComponent.paintChildren(JComponent.java:382)
      > java.awt.swing.JComponent.paint(JComponent.java:537)
      > java.awt.swing.JComponent.paintChildren(JComponent.java:382)
      > java.awt.swing.JComponent.paint(JComponent.java:537)
      > java.awt.swing.JComponent.paintChildren(JComponent.java:382)
      > "com.dtai.leif.window.Clock" (TID:0x12493c8,
      > sys_thread_t:0x921f40, Win32ID:0x3b, state:CW, resu
      > mestate:R, stack base:3d9ff6c) prio=5
      > com.dtai.leif.window.Clock$Timer.run(Clock.java:67)
      > "SoftReference sweeper" (TID:0x123a6c0, sys_thread_t:0x8fcb40,
      > Win32ID:0xc9, state:R, resumestat
      > e:R, stack base:3a3ff6c) prio=8
      >
      > java.lang.ref.SoftReference$Sweeper.run(SoftReference.java:525)
      > java.lang.Thread.run(Thread.java:474)
      > "Reference handler" (TID:0x123a748, sys_thread_t:0x8fbe30,
      > Win32ID:0x5d, state:R, resumestate:R,
      > stack base:393ff6c) prio=10
      > java.lang.Object.wait(Object.java:315)
      >
      > java.lang.ref.Reference$ReferenceHandler.run(Reference.java:184)
      > "TimerQueue" (TID:0x1213658, sys_thread_t:0x8da9b0, Win32ID:0xe0,
      > state:R, resumestate:R, stack
      > base:356ff6c) prio=5
      > java.awt.swing.TimerQueue.run(TimerQueue.java:210)
      > java.lang.Thread.run(Thread.java:474)
      > "AWT-Windows" (TID:0x120a298, sys_thread_t:0x8c3750, Win32ID:0x5c,
      > state:R, resumestate:R, stack
      > base:337ff6c) prio=5
      > sun.awt.windows.WToolkit.run(WToolkit.java:106)
      > java.lang.Thread.run(Thread.java:474)
      > "AWT-EventQueue-0" (TID:0x120a0b8, sys_thread_t:0x8c3350,
      > Win32ID:0x55, state:MW, resumestate:R,
      > stack base:327ff6c) prio=5
      > java.awt.Component.invalidate(Component.java:1126)
      > java.awt.Container.invalidate(Container.java:485)
      > java.awt.swing.JComponent.revalidate(JComponent.java:2904)
      >
      > java.awt.swing.plaf.basic.BasicTextUI$RootView.preferenceChanged(BasicTextUI.java:788)
      >
      > java.awt.swing.text.View.preferenceChanged(View.java:84)
      >
      > java.awt.swing.text.PlainView.preferenceChanged(PlainView.java:288)
      > java.awt.swing.text.PlainView.updateDamage(PlainView.java:460)
      >
      > java.awt.swing.text.PlainView.removeUpdate(PlainView.java:406)
      >
      > java.awt.swing.text.FieldView.removeUpdate(FieldView.java:251)
      >
      >
      > java.awt.swing.plaf.basic.BasicTextUI$RootView.removeUpdate(BasicTextUI.java:922)
      >
      >
      > java.awt.swing.plaf.basic.BasicTextUI$UpdateHandler.removeUpdate(BasicTextUI.java:1139)
      >
      >
      > java.awt.swing.text.AbstractDocument.fireRemoveUpdate(AbstractDocument.java:187)
      >
      >
      > java.awt.swing.text.AbstractDocument.remove(AbstractDocument.java:376)
      >
      >
      > java.awt.swing.text.JTextComponent.setText(JTextComponent.java:1144)
      >
      > com.dtai.map.guitools.MousePositionField.mouseMoved(MousePositionField.java:107)
      >
      >
      > java.awt.AWTEventMulticaster.mouseMoved(AWTEventMulticaster.java:276)
      >
      > java.awt.Component.processMouseMotionEvent(Component.java:2324)
      >
      > java.awt.swing.JComponent.processMouseMotionEvent(JComponent.java:1544)
      >
      > java.awt.Component.processEvent(Component.java:2133)
      > java.awt.Container.processEvent(Container.java:894)
      > "Finalizer thread" (TID:0x11f9080, sys_thread_t:0x8a0520,
      > Win32ID:0xeb, state:CW, resumestate:R,
      > stack base:2faff6c) prio=2
      > "main" (TID:0x11f90a8, sys_thread_t:0x89fa10, Win32ID:0x7c,
      > state:R, resumestate:R, stack base:1
      > 2ff50) prio=5
      > Monitor Cache Dump:
      > java.lang.Object@1204D60/13B5340: owner (0x7ffd4000, 8 entries)
      > Registered Monitor Dump:
      > Thread queue lock: <unowned>
      > Waiters: 1
      > Name and type hash table lock: <unowned>
      > String intern lock: <unowned>
      > JNI pinning lock: <unowned>
      > JNI global reference lock: <unowned>
      > BinClass lock: <unowned>
      > Class loading lock: <unowned>
      > Java stack lock: <unowned>
      > Code rewrite lock: <unowned>
      > Heap lock: <unowned>
      > Has finalization queue lock: <unowned>
      > Finalize me queue lock: <unowned>
      > Waiters: 1
      > Monitor registry: owner (0x7ffd9000, 1 entry)
      >
      >
      >
      > --
      (Review ID: 35321)
      ======================================================================

            svioletsunw Scott Violet (Inactive)
            rmandelsunw Ronan Mandel (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: