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 236352 - Race Condition in org.openide.awt.MenuBar$LazyMenu$MenuFolder
Summary: Race Condition in org.openide.awt.MenuBar$LazyMenu$MenuFolder
Status: RESOLVED INCOMPLETE
Alias: None
Product: platform
Classification: Unclassified
Component: Window System (show other bugs)
Version: 7.3.1
Hardware: PC Windows Vista
: P3 normal (vote)
Assignee: Stanislav Aubrecht
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-09-25 09:08 UTC by ThomasKrieger
Modified: 2013-12-09 15:06 UTC (History)
0 users

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 ThomasKrieger 2013-09-25 09:08:54 UTC
org.openide.awt.MenuBar$LazyMenu$MenuFolder.instanceForCookie is called from different threads. It inserts somithing in a java.util.HashMap with put, leading to a race condition.

Here is the trace generated form http://vmlens.com :

  Folder Instance Processor (47)  java.util.HashMap.put
      java.util.HashMap.put
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.instanceForCookie
      org.openide.loaders.FolderInstance$HoldInstance.instanceCreate
      org.openide.loaders.FolderInstance$1R.instances
      org.openide.loaders.FolderInstance$1R.run
      org.openide.util.RequestProcessor$Task.run
      org.openide.util.RequestProcessor$Processor.run

   AWT-EventQueue-1 (32)  java.util.HashMap.put
      java.util.HashMap.put
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.instanceForCookie
      org.openide.loaders.FolderInstance$HoldInstance.instanceCreate
      org.openide.awt.MenuBar.allInstances
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.createInstance
      org.openide.loaders.FolderInstance.defaultProcessObjectsFinal
      org.openide.loaders.FolderInstance$1R.run
      org.openide.util.Task.run
      org.netbeans.modules.openide.loaders.AWTTask.run
      org.netbeans.modules.openide.loaders.AWTTask$Processor.run
      java.awt.event.InvocationEvent.dispatch
      java.awt.EventQueue.dispatchEvent
      org.netbeans.core.TimableEventQueue.dispatchEvent
      java.awt.EventDispatchThread.pumpOneEventForFilters
      java.awt.EventDispatchThread.pumpEventsForFilter
      java.awt.EventDispatchThread.pumpEventsForHierarchy
      java.awt.EventDispatchThread.pumpEvents
      java.awt.EventDispatchThread.pumpEvents
      java.awt.EventDispatchThread.run

   Folder Instance Processor (14)  java.util.HashMap.put
      java.util.HashMap.put
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.instanceForCookie
      org.openide.loaders.FolderInstance$HoldInstance.instanceCreate
      org.openide.loaders.FolderInstance$1R.instances
      org.openide.loaders.FolderInstance$1R.run
      org.openide.util.RequestProcessor$Task.run
      org.openide.util.RequestProcessor$Processor.run

   AWT-EventQueue-1 (32)  java.util.HashMap.put
      java.util.HashMap.put
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.instanceForCookie
      org.openide.loaders.FolderInstance$HoldInstance.instanceCreate
      org.openide.awt.MenuBar.allInstances
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.createInstance
      org.openide.loaders.FolderInstance.defaultProcessObjectsFinal
      org.openide.loaders.FolderInstance$1R.run
      org.openide.util.Task.run
      org.netbeans.modules.openide.loaders.AWTTask.run
      org.netbeans.modules.openide.loaders.AWTTask$Processor.run
      java.awt.event.InvocationEvent.dispatch
      java.awt.EventQueue.dispatchEvent
      org.netbeans.core.TimableEventQueue.dispatchEvent
      java.awt.EventDispatchThread.pumpOneEventForFilters
      java.awt.EventDispatchThread.pumpEventsForFilter
      java.awt.EventDispatchThread.pumpEventsForHierarchy
      java.awt.EventDispatchThread.pumpEvents
      java.awt.EventDispatchThread.pumpEvents
      java.awt.EventDispatchThread.run

   Folder Instance Processor (14)  java.util.HashMap.put
      java.util.HashMap.put
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.instanceForCookie
      org.openide.loaders.FolderInstance$HoldInstance.instanceCreate
      org.openide.loaders.FolderInstance$1R.instances
      org.openide.loaders.FolderInstance$1R.run
      org.openide.util.RequestProcessor$Task.run
      org.openide.util.RequestProcessor$Processor.run

   AWT-EventQueue-1 (32)  java.util.HashMap.put
      java.util.HashMap.put
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.instanceForCookie
      org.openide.loaders.FolderInstance$HoldInstance.instanceCreate
      org.openide.awt.MenuBar.allInstances
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.createInstance
      org.openide.loaders.FolderInstance.defaultProcessObjectsFinal
      org.openide.loaders.FolderInstance$1R.run
      org.openide.util.Task.run
      org.netbeans.modules.openide.loaders.AWTTask.run
      org.netbeans.modules.openide.loaders.AWTTask$Processor.run
      java.awt.event.InvocationEvent.dispatch
      java.awt.EventQueue.dispatchEvent
      org.netbeans.core.TimableEventQueue.dispatchEvent
      java.awt.EventDispatchThread.pumpOneEventForFilters
      java.awt.EventDispatchThread.pumpEventsForFilter
      java.awt.EventDispatchThread.pumpEventsForHierarchy
      java.awt.EventDispatchThread.pumpEvents
      java.awt.EventDispatchThread.pumpEvents
      java.awt.EventDispatchThread.run

   Folder Instance Processor (47)  java.util.HashMap.put
      java.util.HashMap.put
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.instanceForCookie
      org.openide.loaders.FolderInstance$HoldInstance.instanceCreate
      org.openide.loaders.FolderInstance$1R.instances
      org.openide.loaders.FolderInstance$1R.run
      org.openide.util.RequestProcessor$Task.run
      org.openide.util.RequestProcessor$Processor.run

   AWT-EventQueue-1 (32)  java.util.HashMap.put
      java.util.HashMap.put
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.instanceForCookie
      org.openide.loaders.FolderInstance$HoldInstance.instanceCreate
      org.openide.awt.MenuBar.allInstances
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.createInstance
      org.openide.loaders.FolderInstance.defaultProcessObjectsFinal
      org.openide.loaders.FolderInstance$1R.run
      org.openide.util.Task.run
      org.netbeans.modules.openide.loaders.AWTTask.run
      org.netbeans.modules.openide.loaders.AWTTask$Processor.run
      java.awt.event.InvocationEvent.dispatch
      java.awt.EventQueue.dispatchEvent
      org.netbeans.core.TimableEventQueue.dispatchEvent
      java.awt.EventDispatchThread.pumpOneEventForFilters
      java.awt.EventDispatchThread.pumpEventsForFilter
      java.awt.EventDispatchThread.pumpEventsForHierarchy
      java.awt.EventDispatchThread.pumpEvents
      java.awt.EventDispatchThread.pumpEvents
      java.awt.EventDispatchThread.run

   Folder Instance Processor (14)  java.util.HashMap.put
      java.util.HashMap.put
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.instanceForCookie
      org.openide.loaders.FolderInstance$HoldInstance.instanceCreate
      org.openide.loaders.FolderInstance$1R.instances
      org.openide.loaders.FolderInstance$1R.run
      org.openide.util.RequestProcessor$Task.run
      org.openide.util.RequestProcessor$Processor.run

   AWT-EventQueue-1 (32)  java.util.HashMap.put
      java.util.HashMap.put
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.instanceForCookie
      org.openide.loaders.FolderInstance$HoldInstance.instanceCreate
      org.openide.awt.MenuBar.allInstances
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.createInstance
      org.openide.loaders.FolderInstance.defaultProcessObjectsFinal
      org.openide.loaders.FolderInstance$1R.run
      org.openide.util.Task.run
      org.netbeans.modules.openide.loaders.AWTTask.run
      org.netbeans.modules.openide.loaders.AWTTask$Processor.run
      java.awt.event.InvocationEvent.dispatch
      java.awt.EventQueue.dispatchEvent
      org.netbeans.core.TimableEventQueue.dispatchEvent
      java.awt.EventDispatchThread.pumpOneEventForFilters
      java.awt.EventDispatchThread.pumpEventsForFilter
      java.awt.EventDispatchThread.pumpEventsForHierarchy
      java.awt.EventDispatchThread.pumpEvents
      java.awt.EventDispatchThread.pumpEvents
      java.awt.EventDispatchThread.run

   Folder Instance Processor (25)  java.util.HashMap.put
      java.util.HashMap.put
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.instanceForCookie
      org.openide.loaders.FolderInstance$HoldInstance.instanceCreate
      org.openide.loaders.FolderInstance$1R.instances
      org.openide.loaders.FolderInstance$1R.run
      org.openide.util.RequestProcessor$Task.run
      org.openide.util.RequestProcessor$Processor.run

   AWT-EventQueue-1 (32)  java.util.HashMap.put
      java.util.HashMap.put
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.instanceForCookie
      org.openide.loaders.FolderInstance$HoldInstance.instanceCreate
      org.openide.awt.MenuBar.allInstances
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.createInstance
      org.openide.loaders.FolderInstance.defaultProcessObjectsFinal
      org.openide.loaders.FolderInstance$1R.run
      org.openide.util.Task.run
      org.netbeans.modules.openide.loaders.AWTTask.run
      org.netbeans.modules.openide.loaders.AWTTask$Processor.run
      java.awt.event.InvocationEvent.dispatch
      java.awt.EventQueue.dispatchEvent
      org.netbeans.core.TimableEventQueue.dispatchEvent
      java.awt.EventDispatchThread.pumpOneEventForFilters
      java.awt.EventDispatchThread.pumpEventsForFilter
      java.awt.EventDispatchThread.pumpEventsForHierarchy
      java.awt.EventDispatchThread.pumpEvents
      java.awt.EventDispatchThread.pumpEvents
      java.awt.EventDispatchThread.run

   Folder Instance Processor (47)  java.util.HashMap.put
      java.util.HashMap.put
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.instanceForCookie
      org.openide.loaders.FolderInstance$HoldInstance.instanceCreate
      org.openide.loaders.FolderInstance$1R.instances
      org.openide.loaders.FolderInstance$1R.run
      org.openide.util.RequestProcessor$Task.run
      org.openide.util.RequestProcessor$Processor.run

   AWT-EventQueue-1 (32)  java.util.HashMap.put
      java.util.HashMap.put
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.instanceForCookie
      org.openide.loaders.FolderInstance$HoldInstance.instanceCreate
      org.openide.awt.MenuBar.allInstances
      org.openide.awt.MenuBar$LazyMenu$MenuFolder.createInstance
      org.openide.loaders.FolderInstance.defaultProcessObjectsFinal
      org.openide.loaders.FolderInstance$1R.run
      org.openide.util.Task.run
      org.netbeans.modules.openide.loaders.AWTTask.run
      org.netbeans.modules.openide.loaders.AWTTask$Processor.run
      java.awt.event.InvocationEvent.dispatch
      java.awt.EventQueue.dispatchEvent
      org.netbeans.core.TimableEventQueue.dispatchEvent
      java.awt.EventDispatchThread.pumpOneEventForFilters
      java.awt.EventDispatchThread.pumpEventsForFilter
      java.awt.EventDispatchThread.pumpEventsForHierarchy
      java.awt.EventDispatchThread.pumpEvents
      java.awt.EventDispatchThread.pumpEvents
      java.awt.EventDispatchThread.run
Comment 1 Stanislav Aubrecht 2013-09-25 09:12:34 UTC
Sorry but what is the actual bug here? Is anything broken in the IDE when the race condition happens?
Comment 2 Stanislav Aubrecht 2013-12-09 15:06:12 UTC
Please clarify the issue as requested in comment #1 and reopen, thanks.