This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 10826 - Reproducible deadlock in UndoRedo$Manager
Summary: Reproducible deadlock in UndoRedo$Manager
Status: CLOSED FIXED
Alias: None
Product: platform
Classification: Unclassified
Component: -- Other -- (show other bugs)
Version: 3.x
Hardware: Sun Solaris
: P1 blocker (vote)
Assignee: mslama
URL:
Keywords:
: 10746 (view as bug list)
Depends on:
Blocks:
 
Reported: 2001-03-29 12:51 UTC by Jan Zajicek
Modified: 2008-12-22 21:57 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Zajicek 2001-03-29 12:51:23 UTC
In the AWT queue there should nobody wait at default requestprocessor. See the
deadlock between AWT queue and def. requestproc.

Simply way to reproduce -> create two projects and in both of them open some
form and try switching between them.

"OpenIDE Request Processor-0" daemon prio=1 tid=0x30d898 nid=0x11 waiting on
monitor [0xf157f000..0xf15819e0]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:420)
        at java.awt.EventQueue.invokeAndWait(EventQueue.java:547)
        at org.openide.util.Mutex.doEventAccess(Mutex.java:871)
        at org.openide.util.Mutex.readAccess(Mutex.java:193)
        at org.netbeans.modules.form.FormLAF.executeWithLookAndFeel(FormLAF.java:41)
        at
org.netbeans.modules.form.CreationFactory.createDefaultInstance(CreationFactory.java:68)
        at
org.netbeans.modules.form.BeanSupport.createBeanInstance(BeanSupport.java:57)
        at
org.netbeans.modules.form.RADComponent.createBeanInstance(RADComponent.java:219)
        at
org.netbeans.modules.form.RADComponent.setComponent(RADComponent.java:126)
        at org.netbeans.modules.form.FormModel.setFormInfo(FormModel.java:86)
        at
org.netbeans.modules.form.GandalfPersistenceManager.loadForm(GandalfPersistenceManager.java:268)
        at
org.netbeans.modules.form.FormEditorSupport.loadForm(FormEditorSupport.java:106)
        at
org.netbeans.modules.form.FormDesigner.readExternal(FormDesigner.java:116)
        at
org.openide.windows.TopComponent$Replacer.readObject(TopComponent.java:705)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.io.ObjectInputStream.invokeObjectReader(ObjectInputStream.java:2214)
        at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1411)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
        at org.openide.util.io.NbMarshalledObject.get(NbMarshalledObject.java:88)
        at
org.netbeans.core.windows.WindowManagerImpl$TopComponentManager.validateData(WindowManagerImpl.java:1343)
        at
org.netbeans.core.windows.frames.DefaultContainerImpl.validateData(DefaultContainerImpl.java:860)
        at
org.netbeans.core.windows.frames.DefaultContainerImpl.validateData(DefaultContainerImpl.java:833)
        at
org.netbeans.core.windows.frames.MultiTabbedContainerImpl.validateData(MultiTabbedContainerImpl.java:483)
        at org.netbeans.core.windows.ModeImpl.validateData(ModeImpl.java:1223)
        at
org.netbeans.core.windows.WorkspaceVisibilityManager.processModesValidation(WorkspaceVisibilityManager.java:323)
        at
org.netbeans.core.windows.WorkspaceVisibilityManager.validateModes(WorkspaceVisibilityManager.java:233)
        at
org.netbeans.core.windows.WorkspaceImpl.validateData(WorkspaceImpl.java:630)
        at
org.netbeans.core.windows.WindowManagerImpl$SerializationReplacer.readResolve(WindowManagerImpl.java:868)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.io.ObjectStreamClass.invokeMethod(ObjectStreamClass.java:1615)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:393)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
        at org.openide.util.io.NbMarshalledObject.get(NbMarshalledObject.java:88)
        at
org.netbeans.modules.projects.PSupport.updateWindowManager(PSupport.java:832)
        at org.netbeans.modules.projects.PSupport.projectOpen(PSupport.java:252)
        at
org.netbeans.core.NbProjectOperation.setProject(NbProjectOperation.java:129)
        at org.netbeans.core.NbTopManager.openProject(NbTopManager.java:457)
        at
org.netbeans.modules.projects.ProjectManagerPanel.openProject(ProjectManagerPanel.java:313)
        at
org.netbeans.modules.projects.ProjectManagerPanel.access$1200(ProjectManagerPanel.java:38)
        at
org.netbeans.modules.projects.ProjectManagerPanel$12.run(ProjectManagerPanel.java:283)
        at org.openide.util.Task.run(Task.java:124)
        at
org.openide.util.RequestProcessor$ProcessorThread.run(RequestProcessor.java:584)

"AWT-Motif" prio=6 tid=0x281a10 nid=0xf runnable [0xf1781000..0xf17819e0]
        at sun.awt.motif.MToolkit.run(Native Method)
        at java.lang.Thread.run(Thread.java:484)

"SunToolkit.PostEventQueue-0" prio=6 tid=0x22b390 nid=0xe waiting on monitor
[0xf1881000..0xf18819e0]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:420)
        at sun.awt.PostEventQueue.run(SunToolkit.java:491)

"AWT-EventQueue-0" prio=6 tid=0x22b260 nid=0xd waiting on monitor
[0xf1981000..0xf19819e0]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:420)
        at org.openide.util.Task.waitFinishedImpl(Task.java:82)
        at
org.openide.util.RequestProcessor$Task.waitFinishedImpl(RequestProcessor.java:390)
        at org.openide.util.Task.waitFinished(Task.java:71)
        at org.openide.awt.UndoRedo$Manager.canUndo(UndoRedo.java:148)
        at org.openide.actions.UndoAction$1.run(UndoAction.java:80)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:154)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:337)
        at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:131)
        at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:98)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)
Comment 1 Jan Zajicek 2001-03-29 14:15:16 UTC
*** Issue 10746 has been marked as a duplicate of this issue. ***
Comment 2 mslama 2001-03-30 10:45:22 UTC
Fixed in org.openide.awt.UndoRedo.Manager: Added internal RequestProcessor to
avoid deadlock between default RequestProcessor thread and AWT thread.

Also added regression test UndoRedoTest to openide/test/regr/src to reproduce
this deadlock.
Comment 3 Jan Zajicek 2001-04-05 13:52:32 UTC
verified 3.2 #21
Comment 4 Jan Chalupa 2001-05-06 08:20:39 UTC
Target milestone -> 3.2
Comment 5 Quality Engineering 2003-07-01 16:39:59 UTC
Resolved for 3.4.x or earlier, no new info since then -> closing.