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 101628

Summary: ConcurrentModificationException appears during parsing query
Product: obsolete Reporter: Alexey Butenko <alexeybutenko>
Component: visualwebAssignee: _ jimdavidson <jimdavidson>
Status: VERIFIED FIXED    
Severity: blocker CC: jimdavidson
Priority: P1    
Version: 6.x   
Hardware: All   
OS: All   
Issue Type: DEFECT Exception Reporter:

Description Alexey Butenko 2007-04-18 18:02:51 UTC
Issue found with new org-netbeans-modules-db-sql-visualeditor.jar
in netbeans build 070417

It is not always appears, but the most reproducible steps are:
Open Query editor, add one or more tables to query in graph view.
And then parse query by clicking Parse Query from popup menu in query editor, following exception 
will appear, and query editor corrupted or become empty. 

java.util.ConcurrentModificationException
   at java.util.HashMap$HashIterator.nextEntry(HashMap.java:787)
   at java.util.HashMap$KeyIterator.next(HashMap.java:823)
   at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1010)
   at org.netbeans.modules.db.sql.visualeditor.querybuilder.QueryBuilderGraphFrame.clearGraph
(QueryBuilderGraphFrame.java:1460)
   at org.netbeans.modules.db.sql.visualeditor.querybuilder.QueryBuilderPane.clear
(QueryBuilderPane.java:304)
   at org.netbeans.modules.db.sql.visualeditor.querybuilder.QueryBuilder.generate(QueryBuilder.java:
1339)
   at org.netbeans.modules.db.sql.visualeditor.querybuilder.QueryBuilder.populate(QueryBuilder.java:
704)
   at org.netbeans.modules.db.sql.visualeditor.querybuilder.QueryBuilderSqlTextArea.actionPerformed
(QueryBuilderSqlTextArea.java:588)
   at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)
   at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202)
   at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
   at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
   at javax.swing.AbstractButton.doClick(AbstractButton.java:334)
   at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
   at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)
   at java.awt.Component.processMouseEvent(Component.java:5554)
   at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
   at java.awt.Component.processEvent(Component.java:5319)
   at java.awt.Container.processEvent(Container.java:2010)
   at java.awt.Component.dispatchEventImpl(Component.java:4021)
   at java.awt.Container.dispatchEventImpl(Container.java:2068)
   at java.awt.Component.dispatchEvent(Component.java:3869)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4256)
   at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3936)
   at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3866)
   at java.awt.Container.dispatchEventImpl(Container.java:2054)
   at java.awt.Window.dispatchEventImpl(Window.java:1774)
   at java.awt.Component.dispatchEvent(Component.java:3869)
[catch] at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
   at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Comment 1 Alexey Butenko 2007-04-18 18:05:30 UTC
I've found further, if to close query editor in such corrupted state, it leads to next exception in project:

java.lang.IllegalStateException: [Winsys] TopComponent 
org.netbeans.modules.db.sql.visualeditor.querybuilder.QueryBuilder[jdbc:derby://localhost:1527/travel 
[travel on TRAVEL],
2,0,745x694,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=320
,maximumSize=,minimumSize=,preferredSize=] throws runtime exception from its componentHidden() 
method. Repair it!
	at org.openide.windows.WindowManager.componentHidden(WindowManager.java:339)
	at org.netbeans.core.windows.WindowManagerImpl.componentHidden(WindowManagerImpl.java:
1018)
	at org.netbeans.core.windows.view.DefaultView.changeGUI(DefaultView.java:464)
	at org.netbeans.core.windows.ViewRequestor.dispatchRequest(ViewRequestor.java:247)
	at org.netbeans.core.windows.ViewRequestor.processRequest(ViewRequestor.java:223)
	at org.netbeans.core.windows.ViewRequestor.postRequest(ViewRequestor.java:161)
	at org.netbeans.core.windows.ViewRequestor.scheduleRequest(ViewRequestor.java:101)
	at org.netbeans.core.windows.Central.removeModeTopComponent(Central.java:902)
	at org.netbeans.core.windows.Central.userClosedTopComponent(Central.java:1794)
	at org.netbeans.core.windows.view.DefaultView.userClosedTopComponent(DefaultView.java:714)
	at org.netbeans.core.windows.view.ui.TabbedHandler.actionPerformed(TabbedHandler.java:299)
	at org.netbeans.swing.tabcontrol.TabbedContainer.postActionEvent(TabbedContainer.java:652)
	at org.netbeans.swing.tabcontrol.TabbedContainerUI.shouldPerformAction
(TabbedContainerUI.java:140)
	at org.netbeans.swing.tabcontrol.plaf.DefaultTabbedContainerUI.access$2600
(DefaultTabbedContainerUI.java:87)
	at org.netbeans.swing.tabcontrol.plaf.DefaultTabbedContainerUI
$DisplayerActionListener.actionPerformed(DefaultTabbedContainerUI.java:1232)
	at org.netbeans.swing.tabcontrol.TabDisplayer.postActionEvent(TabDisplayer.java:521)
	at org.netbeans.swing.tabcontrol.TabDisplayerUI.shouldPerformAction(TabDisplayerUI.java:150)
	at org.netbeans.swing.tabcontrol.plaf.BasicTabDisplayerUI.access$1500(BasicTabDisplayerUI.java:
94)
	at org.netbeans.swing.tabcontrol.plaf.BasicTabDisplayerUI
$BasicDisplayerMouseListener.performCommand(BasicTabDisplayerUI.java:693)
	at org.netbeans.swing.tabcontrol.plaf.BasicTabDisplayerUI
$BasicDisplayerMouseListener.potentialCommand(BasicTabDisplayerUI.java:678)
	at org.netbeans.swing.tabcontrol.plaf.BasicTabDisplayerUI
$BasicDisplayerMouseListener.mouseReleased(BasicTabDisplayerUI.java:726)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
	at java.awt.Component.processMouseEvent(Component.java:5554)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
	at java.awt.Component.processEvent(Component.java:5319)
	at java.awt.Container.processEvent(Container.java:2010)
	at java.awt.Component.dispatchEventImpl(Component.java:4021)
	at java.awt.Container.dispatchEventImpl(Container.java:2068)
	at java.awt.Component.dispatchEvent(Component.java:3869)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4256)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3936)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3866)
	at java.awt.Container.dispatchEventImpl(Container.java:2054)
	at java.awt.Window.dispatchEventImpl(Window.java:1774)
	at java.awt.Component.dispatchEvent(Component.java:3869)
[catch] at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: java.util.ConcurrentModificationException
	at java.util.HashMap$HashIterator.nextEntry(HashMap.java:787)
	at java.util.HashMap$KeyIterator.next(HashMap.java:823)
	at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1010)
	at org.netbeans.modules.db.sql.visualeditor.querybuilder.QueryBuilderGraphFrame.clearGraph
(QueryBuilderGraphFrame.java:1460)
	at org.netbeans.modules.db.sql.visualeditor.querybuilder.QueryBuilderPane.clear
(QueryBuilderPane.java:304)
	at org.netbeans.modules.db.sql.visualeditor.querybuilder.QueryBuilder.disableVisualEditing
(QueryBuilder.java:767)
	at org.netbeans.modules.db.sql.visualeditor.querybuilder.QueryBuilder.promptForContinuation
(QueryBuilder.java:757)
	at org.netbeans.modules.db.sql.visualeditor.querybuilder.QueryBuilder.populate
(QueryBuilder.java:686)
	at org.netbeans.modules.db.sql.visualeditor.querybuilder.QueryBuilder.componentHidden
(QueryBuilder.java:1499)
	at org.openide.windows.WindowManager.componentHidden(WindowManager.java:337)
	... 41 more
Comment 2 _ jimdavidson 2007-04-19 17:04:36 UTC
This was already marked as fixed last night.  

The IssueZilla software needs to be fixed.
Comment 3 Alexey Butenko 2007-04-20 13:03:33 UTC
verified with build 070420