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 88655 - Error highlighting for #includes sometimes blocks UI thread
Summary: Error highlighting for #includes sometimes blocks UI thread
Status: CLOSED FIXED
Alias: None
Product: cnd
Classification: Unclassified
Component: Code Model (show other bugs)
Version: 5.x
Hardware: All All
: P1 blocker (vote)
Assignee: Alexander Simon
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-11-04 22:11 UTC by Vladimir Kvashin
Modified: 2008-01-09 08:04 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 Vladimir Kvashin 2006-11-04 22:11:48 UTC
Several times I saw the following fragment in the thread dump.
This means that UI thread is waiting until some file is parsed.
This is unacceptable.

"AWT-EventQueue-1" prio=6 tid=0x4b437400 nid=0xde8 in Object.wait()
[0x4c0be000..0x4c0bfc14]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x037635c0> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:485)
        at
org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:997)
        - locked <0x037635c0> (a java.lang.Object)
        at
org.netbeans.modules.cnd.modelimpl.csm.core.FileImpl.scheduleParsing(FileImpl.java:986)
        at
org.netbeans.modules.cnd.modelutil.CsmUtilities.getCsmFile(CsmUtilities.java:239)
        at
org.netbeans.modules.cnd.modelutil.CsmUtilities.getCsmFile(CsmUtilities.java:210)
        at
org.netbeans.modules.cnd.modelutil.CsmUtilities.getCsmFile(CsmUtilities.java:189)
        at
org.netbeans.modules.cnd.highlight.HighlightProvider.checkClosed(HighlightProvider.java:161)
        at
org.netbeans.modules.cnd.highlight.HighlightProvider.checkClosed(HighlightProvider.java:148)
        at
org.netbeans.modules.cnd.highlight.HighlightProvider.propertyChange(HighlightProvider.java:128)
        at
java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
        at
java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
        at
org.netbeans.core.windows.RegistryImpl.doFirePropertyChange(RegistryImpl.java:255)
        at
org.netbeans.core.windows.RegistryImpl.topComponentOpened(RegistryImpl.java:157)
        - locked <0x07b96748> (a org.netbeans.core.windows.RegistryImpl)
        at
org.netbeans.core.windows.WindowManagerImpl.notifyRegistryTopComponentOpened(WindowManagerImpl.java:934)
        at
org.netbeans.core.windows.WindowManagerImpl.notifyTopComponentOpened(WindowManagerImpl.java:904)
        at
org.netbeans.core.windows.Central.addModeOpenedTopComponent(Central.java:590)
        at
org.netbeans.core.windows.ModeImpl.addOpenedTopComponent(ModeImpl.java:255)
        at
org.netbeans.core.windows.WindowManagerImpl.topComponentOpen(WindowManagerImpl.java:998)
        at org.openide.windows.TopComponent.open(TopComponent.java:318)
        at org.openide.text.CloneableEditor.open(CloneableEditor.java:323)
        at org.openide.windows.TopComponent.open(TopComponent.java:310)
        at
org.openide.windows.CloneableOpenSupport.openCloneableTopComponent(CloneableOpenSupport.java:177)
        - locked <0x0786c658> (a java.awt.Component$AWTTreeLock)
        at
org.openide.windows.CloneableOpenSupport$1.run(CloneableOpenSupport.java:76)
        at org.openide.util.Mutex.doEvent(Mutex.java:1158)
        at org.openide.util.Mutex.writeAccess(Mutex.java:375)
        at
org.openide.windows.CloneableOpenSupport.open(CloneableOpenSupport.java:73)
        at
org.openide.text.CloneableEditorSupport.open(CloneableEditorSupport.java:396)
        at org.openide.actions.OpenAction.performAction(OpenAction.java:59)
        at
org.openide.util.actions.NodeAction$DelegateAction$1.run(NodeAction.java:537)
        at
org.netbeans.modules.openide.util.ActionsBridge.doPerformAction(ActionsBridge.java:53)
        at
org.openide.util.actions.NodeAction$DelegateAction.actionPerformed(NodeAction.java:533)
        at
org.openide.explorer.view.TreeView$PopupSupport.mouseClicked(TreeView.java:1364)
        at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:212)
        at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:211)
        at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:211)
        at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:211)
        at java.awt.Component.processMouseEvent(Component.java:6002)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3240)
        at java.awt.Component.processEvent(Component.java:5764)
        at java.awt.Container.processEvent(Container.java:1984)
        at java.awt.Component.dispatchEventImpl(Component.java:4407)
        at java.awt.Container.dispatchEventImpl(Container.java:2042)
        at java.awt.Component.dispatchEvent(Component.java:4237)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4248)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3921)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3842)
        at java.awt.Container.dispatchEventImpl(Container.java:2028)
        at java.awt.Window.dispatchEventImpl(Window.java:2405)
        at java.awt.Component.dispatchEvent(Component.java:4237)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:600)
        at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Comment 1 Alexander Simon 2006-11-07 09:49:32 UTC
fixed:
- added new parameter on CsmUtilities.getCsmFile(*, boolean waitParsing).
- highlighting, qnavigator, includeHyperlinkProvider  use non-waiting method

CVS log:

Checking in qnavigator/src/org/netbeans/modules/cnd/qnavigator/NavigationView.java;
/shared/data/ccvs/repository/cnd/qnavigator/src/org/netbeans/modules/cnd/qnavigator/NavigationView.java,v
 <--  NavigationView.java
new revision: 1.2.2.9; previous revision: 1.2.2.8
done
Checking in
completion/src/org/netbeans/modules/cnd/completion/csm/CompletionUtilities.java;
/shared/data/ccvs/repository/cnd/completion/src/org/netbeans/modules/cnd/completion/csm/CompletionUtilities.java,v
 <--  CompletionUtilities.java
new revision: 1.2.2.3; previous revision: 1.2.2.2
done
Checking in
completion/src/org/netbeans/modules/cnd/completion/csm/CompletionResolverImpl.java;
/shared/data/ccvs/repository/cnd/completion/src/org/netbeans/modules/cnd/completion/csm/CompletionResolverImpl.java,v
 <--  CompletionResolverImpl.java
new revision: 1.2.2.12; previous revision: 1.2.2.11
done
Checking in
completion/src/org/netbeans/modules/cnd/completion/cplusplus/NbCsmCompletionQuery.java;
/shared/data/ccvs/repository/cnd/completion/src/org/netbeans/modules/cnd/completion/cplusplus/NbCsmCompletionQuery.java,v
 <--  NbCsmCompletionQuery.java
new revision: 1.2.2.7; previous revision: 1.2.2.6
done
Checking in
completion/src/org/netbeans/modules/cnd/completion/cplusplus/CsmFinderFactory.java;
/shared/data/ccvs/repository/cnd/completion/src/org/netbeans/modules/cnd/completion/cplusplus/CsmFinderFactory.java,v
 <--  CsmFinderFactory.java
new revision: 1.2.2.2; previous revision: 1.2.2.1
done
Checking in
completion/src/org/netbeans/modules/cnd/completion/cplusplus/hyperlink/CsmIncludeHyperlinkProvider.java;
/shared/data/ccvs/repository/cnd/completion/src/org/netbeans/modules/cnd/completion/cplusplus/hyperlink/Attic/CsmIncludeHyperlinkProvider.java,v
 <--  CsmIncludeHyperlinkProvider.java
new revision: 1.1.2.2; previous revision: 1.1.2.1
done
Checking in
completion/src/org/netbeans/modules/cnd/completion/cplusplus/hyperlink/CsmHyperlinkProvider.java;
/shared/data/ccvs/repository/cnd/completion/src/org/netbeans/modules/cnd/completion/cplusplus/hyperlink/CsmHyperlinkProvider.java,v
 <--  CsmHyperlinkProvider.java
new revision: 1.2.2.8; previous revision: 1.2.2.7
done
Checking in highlight/src/org/netbeans/modules/cnd/highlight/HighlightProvider.java;
/shared/data/ccvs/repository/cnd/highlight/src/org/netbeans/modules/cnd/highlight/Attic/HighlightProvider.java,v
 <--  HighlightProvider.java
new revision: 1.1.2.2; previous revision: 1.1.2.1
done
Checking in modelutil/src/org/netbeans/modules/cnd/modelutil/CsmUtilities.java;
/shared/data/ccvs/repository/cnd/modelutil/src/org/netbeans/modules/cnd/modelutil/CsmUtilities.java,v
 <--  CsmUtilities.java
new revision: 1.2.2.7; previous revision: 1.2.2.6
done