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

Deadly embrace in Container.getPreferredSize

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P2 P2
    • None
    • 1.1.4, 1.1.6
    • client-libs
    • x86
    • windows_nt



      Name: chT40241 Date: 02/03/98


      Deadly embrace between main app thread and AWT EventQueue thread.
      Both threads have called Container.getPreferredSize. The main
      thread is waiting on "this", held by the EventQueue, while the
      EventQueue thread is waiting on target.getTreeLock, which is held
      by the App thread. The problem occurs frequently, but not
      consistently.

      This did not occur with 1.1.5 but has started with 1.1.6. We see in the putback comments the following (08Dec97):

      Modified synchronization to use getTreeLock vice direct access to Component.LOCK. Added sync by getTreeLock to all add and remove functions in the standard components. Also removed synchronization from some methods that also used getTreeLock to avoid potential deadlocks.
      update: src/share/java/java/awt/BorderLayout.java
      update: src/share/java/java/awt/Button.java
      update: src/share/java/java/awt/Frame.java
      update: src/share/java/java/awt/Label.java
      update: src/share/java/java/awt/List.java
      update: src/share/java/java/awt/Checkbox.java
      update: src/share/java/java/awt/CardLayout.java
      update: src/share/java/java/awt/Menu.java
      update: src/share/java/java/awt/MenuItem.java
      update: src/share/java/java/awt/Scrollbar.java
      update: src/share/java/java/awt/TextArea.java
      update: src/share/java/java/awt/TextField.java
      update: src/share/java/java/awt/Canvas.java
      update: src/share/java/java/awt/Choice.java
      update: src/share/java/java/awt/Window.java
      update: src/share/java/java/awt/Panel.java
      update: src/share/java/java/awt/FlowLayout.java
      update: src/share/java/java/awt/MenuBar.java
      update: src/share/java/java/awt/FileDialog.java
      update: src/share/java/java/awt/GridLayout.java
      update: src/share/java/java/awt/MenuComponent.java
      update: src/share/java/java/awt/Dialog.java
      update: src/share/java/java/awt/CheckboxMenuItem.java
      update: src/share/java/java/awt/TextComponent.java
      update: src/share/java/java/awt/GridBagLayout.java
      update: src/share/java/java/awt/ScrollPane.java
      update: src/share/java/java/awt/PopupMenu.java
      update: src/share/sun/sun/awt/VariableGridLayout.java
      update: src/share/sun/sun/awt/VerticalBagLayout.java
      update: src/share/sun/sun/awt/HorizBagLayout.java
      update: src/share/sun/sun/awt/SunToolkit.java
      update: src/win32/sun/windows/awt_Graphics.cpp
      update: src/win32/sun/windows/awt_MenuItem.cpp
      update: src/win32/sun/windows/awt_Dialog.cpp
      update: src/win32/sun/windows/awt_Component.cpp
      Corrected overly ambitious synchronization block that caused modal dialogs to deadlock.
      reduced coverage of a sync to exclude potential upcall to user paint code.



      ======================================================================

            duke J. Duke
            chickeysunw Chuck Hickey (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: