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 137528 - Opening editor takes ages
Summary: Opening editor takes ages
Status: RESOLVED WORKSFORME
Alias: None
Product: apisupport
Classification: Unclassified
Component: Project (show other bugs)
Version: 6.x
Hardware: All All
: P2 blocker (vote)
Assignee: Jesse Glick
URL:
Keywords: PERFORMANCE
Depends on:
Blocks:
 
Reported: 2008-06-18 07:49 UTC by Jaroslav Tulach
Modified: 2008-06-27 21:24 UTC (History)
2 users (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 Jaroslav Tulach 2008-06-18 07:49:24 UTC
I guess that after the introduction of "project preferences", the opening of editor is now horribly delayed, 
especially for files in NetBeans Module projects. At least it just took half a minute to open an editor just now. Here 
is the stack trace:

"AWT-EventQueue-1" prio=10 tid=0x0812e000 nid=0x41d8 in Object.wait() [0xb1b38000..0xb1b39db0]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:485)
        at org.openide.util.Mutex$QueueCell.sleep(Mutex.java:1601)
        - locked <0x7b8dbc90> (a org.openide.util.Mutex$QueueCell)
        at org.openide.util.Mutex.enterImpl(Mutex.java:723)
        at org.openide.util.Mutex.enter(Mutex.java:630)
        at org.openide.util.Mutex.writeEnter(Mutex.java:608)
        at org.openide.util.Mutex.writeAccess(Mutex.java:430)
        at org.openide.util.Mutex$1R.run(Mutex.java:1305)
        at org.netbeans.api.project.ProjectManager$2$1.run(ProjectManager.java:120)
        at org.openide.filesystems.EventControl.runAtomicAction(EventControl.java:120)
        at org.openide.filesystems.FileSystem.runAtomicAction(FileSystem.java:499)
        at org.openide.filesystems.FileUtil.runAtomicAction(FileUtil.java:215)
        at org.netbeans.api.project.ProjectManager$2.execute(ProjectManager.java:118)
        at org.openide.util.Mutex.doWrapperAccess(Mutex.java:1320)
        at org.openide.util.Mutex.writeAccess(Mutex.java:384)
        at 
org.netbeans.modules.projectapi.AuxiliaryConfigBasedPreferencesProvider$AuxiliaryConfigBasedPreferences.node(AuxiliaryConfigBasedPreferencesProvider.java:709)
        at 
org.netbeans.modules.editor.indent.CodeStylePreferences.findProjectPreferences(CodeStylePreferences.java:144)
        at org.netbeans.modules.editor.indent.CodeStylePreferences.<init>(CodeStylePreferences.java:116)
        at org.netbeans.modules.editor.indent.CodeStylePreferences.get(CodeStylePreferences.java:67)
        - locked <0x897075e0> (a java.lang.Class for org.netbeans.modules.editor.indent.CodeStylePreferences)
        at org.netbeans.modules.editor.indent.api.IndentUtils.tabSize(IndentUtils.java:122)
        at org.netbeans.modules.editor.NbEditorDocument.getTabSize(NbEditorDocument.java:150)
        at org.netbeans.editor.DrawEngine.initInfo(DrawEngine.java:158)
        at org.netbeans.editor.DrawEngine.drawInternal(DrawEngine.java:1165)
        - locked <0x7b8dbed0> (a org.netbeans.modules.editor.NbEditorUI)
        at org.netbeans.editor.DrawEngine.draw(DrawEngine.java:1074)
        at org.netbeans.editor.DrawEngineLineView.getModel2ViewRect(DrawEngineLineView.java:413)
        at org.netbeans.editor.DrawEngineLineView.modelToView(DrawEngineLineView.java:482)
        at org.netbeans.editor.DrawEngineLineView.getPreferredSpan(DrawEngineLineView.java:305)
        at org.netbeans.editor.DrawEngineLineView.minorAxisUpdateLayout(DrawEngineLineView.java:802)
        at org.netbeans.editor.DrawEngineLineView.updateLayout(DrawEngineLineView.java:757)
        at org.netbeans.lib.editor.view.GapBoxViewChildren.childrenUpdateLayout(GapBoxViewChildren.java:900)
        at org.netbeans.lib.editor.view.GapBoxViewChildren.childrenUpdateLayout(GapBoxViewChildren.java:905)
        at org.netbeans.lib.editor.view.GapBoxView.updateLayout(GapBoxView.java:750)
        at org.netbeans.lib.editor.view.GapBoxView.directUpdateLayout(GapBoxView.java:898)
        at org.netbeans.lib.editor.view.GapDocumentView.directUpdateLayout(GapDocumentView.java:187)
        at org.netbeans.lib.editor.view.GapBoxView.markLayoutInvalid(GapBoxView.java:885)
        at org.netbeans.lib.editor.view.GapBoxViewChildren.markLayoutInvalid(GapBoxViewChildren.java:859)
        at org.netbeans.lib.editor.view.GapBoxView.preferenceChanged(GapBoxView.java:1273)
        at org.netbeans.editor.DrawEngineLineView.setEstimatedSpan(DrawEngineLineView.java:184)
        at org.netbeans.editor.DrawEngineLineView.modelToView(DrawEngineLineView.java:454)
        at org.netbeans.editor.DrawEngineLineView.modelToView(DrawEngineLineView.java:441)
        at org.netbeans.lib.editor.view.GapBoxView.modelToView(GapBoxView.java:1501)
        at org.netbeans.editor.view.spi.LockView.modelToView(LockView.java:423)
        at javax.swing.plaf.basic.BasicTextUI$RootView.modelToView(BasicTextUI.java:1497)
        at javax.swing.plaf.basic.BasicTextUI.modelToView(BasicTextUI.java:1035)
        at javax.swing.plaf.basic.BasicTextUI.modelToView(BasicTextUI.java:1010)
        at org.netbeans.editor.GlyphGutter.paintComponent(GlyphGutter.java:526)
        at javax.swing.JComponent.paint(JComponent.java:1027)
        at javax.swing.JComponent.paintChildren(JComponent.java:864)
        - locked <0x70434848> (a java.awt.Component$AWTTreeLock)
        at javax.swing.JComponent.paint(JComponent.java:1036)
        at javax.swing.JComponent.paintChildren(JComponent.java:864)
        - locked <0x70434848> (a java.awt.Component$AWTTreeLock)
        at javax.swing.JComponent.paint(JComponent.java:1036)
        at javax.swing.JComponent.paintChildren(JComponent.java:864)
        - locked <0x70434848> (a java.awt.Component$AWTTreeLock)
        at javax.swing.JComponent.paint(JComponent.java:1036)
        at javax.swing.JViewport.paint(JViewport.java:747)
        at javax.swing.JComponent.paintChildren(JComponent.java:864)
        - locked <0x70434848> (a java.awt.Component$AWTTreeLock)
        at javax.swing.JComponent.paint(JComponent.java:1036)
        at javax.swing.JComponent.paintChildren(JComponent.java:864)
        - locked <0x70434848> (a java.awt.Component$AWTTreeLock)
        at javax.swing.JComponent.paint(JComponent.java:1036)
        at javax.swing.JComponent.paintToOffscreen(JComponent.java:5122)
        at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:285)
        at javax.swing.RepaintManager.paint(RepaintManager.java:1172)
        at javax.swing.JComponent._paintImmediately(JComponent.java:5070)
        at javax.swing.JComponent.paintImmediately(JComponent.java:4880)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:758)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
        at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104)
        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 Vitezslav Stejskal 2008-06-18 15:25:45 UTC
We cache the settings once they are found, but perhaps even finding them is expensive...
Comment 2 Dusan Balek 2008-06-24 09:25:20 UTC
IMHO, more interesting information would be - who holds the project mutex for such a long time (half a minute)? Could
you please attach the rest of thread dump? Thanks.
Comment 3 Jaroslav Tulach 2008-06-24 11:52:55 UTC
apisupport.projects
Comment 4 Dusan Balek 2008-06-24 12:11:43 UTC
Should not this issue belong rather to apisupport.projects then?
Comment 5 Vitezslav Stejskal 2008-06-25 08:49:42 UTC
I moved the initialization of indentation related settings to 'initNonVisual' phase, which is running outside of AWT and
therefore should not freeze the IDE. The file will still take long to open, but the rest of the IDE should be
responsive. I'm not sure what else we can do in the editor. We need tab-size for rendering the document and since this
can now be stored in a project, we need to access project settings before we can render any text on the screen.

http://hg.netbeans.org/main/rev/31e63b884d04
http://hg.netbeans.org/main/rev/478746535fda
Comment 6 Jesse Glick 2008-06-27 03:11:41 UTC
I haven't seen any such delays. What is going on in the thread holding the lock? apisupport.project is not involved in
what is shown happening in EQ.
Comment 7 Jaroslav Tulach 2008-06-27 10:10:07 UTC
Start the IDE. Open an editor with some class from NetBeans projects. Leave the IDE running and cleanup all info about 
the repository used in the IDE by filling filesystem caches with something else, for example by running hg status on 
next two or three NetBeans repositories (in case you have more memory than 2GB, run the hg status on more). Return 
back and do "Go To Declaration" from the editor to a class which is next to the already opened one. The system will 
scan the old repository for tens of seconds.
Comment 8 Quality Engineering 2008-06-27 16:36:50 UTC
Integrated into 'main-golden', available in NB_Trunk_Production #285 build
Changeset: http://hg.netbeans.org/main/rev/31e63b884d04
User: Vita Stejskal <vstejskal@netbeans.org>
Log: #137528: attempting to improve responsivness when opening a document
Comment 9 Jesse Glick 2008-06-27 21:24:36 UTC
After saturating my disk caches as best I could according to your instructions, I jumped to another file within a couple
of seconds, an expectable delay for a laptop user with a cold disk cache. Once-per-second automated thread dumps
captured the following things in EQ in between quiescent states:

	at java.io.FileInputStream.readBytes(Native Method)
	at java.io.FileInputStream.read(FileInputStream.java:199)
	at java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
	- locked <0x67e5b158> (a java.io.BufferedInputStream)
	at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
	at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
	at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
	- locked <0x67e5b140> (a java.io.InputStreamReader)
	at java.io.InputStreamReader.read(InputStreamReader.java:167)
	at org.netbeans.modules.java.source.parsing.SourceFileObject.getCharContentImpl(SourceFileObject.java:379)
	at org.netbeans.modules.java.source.parsing.SourceFileObject.getCharContent(SourceFileObject.java:136)
	at org.netbeans.modules.java.source.parsing.SourceFileObject.getCharContent(SourceFileObject.java:82)
	at com.sun.tools.javac.main.JavaCompiler.readSource(JavaCompiler.java:503)
	at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:570)
	at com.sun.tools.javac.main.JavaCompiler.parseFiles(JavaCompiler.java:825)
	at com.sun.tools.javac.api.JavacTaskImpl.parse(JavacTaskImpl.java:278)
	at com.sun.tools.javac.api.JavacTaskImpl.parse(JavacTaskImpl.java:254)
	at org.netbeans.modules.java.source.TreeLoader.loadTreeFor(TreeLoader.java:121)
	at com.sun.tools.javac.model.JavacElements.getTreeAndTopLevel(JavacElements.java:626)
	at com.sun.tools.javac.model.JavacElements.getTreeAndTopLevel(JavacElements.java:652)
	at com.sun.tools.javac.api.JavacTrees.getPath(JavacTrees.java:175)
	at com.sun.tools.javac.api.JavacTrees.getPath(JavacTrees.java:167)
	at org.netbeans.modules.editor.java.GoToSupport$1.run(GoToSupport.java:295)
	at org.netbeans.modules.editor.java.GoToSupport$1.run(GoToSupport.java:147)
	at org.netbeans.api.java.source.JavaSource.runUserActionTask(JavaSource.java:666)
	at org.netbeans.modules.editor.java.GoToSupport.performGoTo(GoToSupport.java:146)
	at org.netbeans.modules.editor.java.GoToSupport.goTo(GoToSupport.java:357)
	at org.netbeans.modules.editor.java.JavaKit$JavaGoToDeclarationAction.gotoDeclaration(JavaKit.java:725)
	at org.netbeans.editor.ext.ExtKit$GotoDeclarationAction.actionPerformed(ExtKit.java:574)

	at java.io.FileInputStream.readBytes(Native Method)
	at java.io.FileInputStream.read(FileInputStream.java:199)
	at java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
	- locked <0x67ad3c18> (a java.io.BufferedInputStream)
	at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
	at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
	at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
	- locked <0x67ad3c00> (a java.io.InputStreamReader)
	at java.io.InputStreamReader.read(InputStreamReader.java:167)
	at java.io.BufferedReader.fill(BufferedReader.java:136)
	at java.io.BufferedReader.read(BufferedReader.java:157)
	- locked <0x67ad3c00> (a java.io.InputStreamReader)
	at org.netbeans.modules.java.source.usages.SymbolClassReader.fillInImpl(SymbolClassReader.java:183)
	at org.netbeans.modules.java.source.usages.SymbolClassReader.fillIn(SymbolClassReader.java:155)
	at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1816)
	at com.sun.tools.javac.code.Symbol.complete(Symbol.java:401)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:784)
	at org.netbeans.modules.java.source.usages.SymbolClassReader.markInnerClassOwner(SymbolClassReader.java:412)
	at org.netbeans.modules.java.source.usages.SymbolClassReader.fillInFromSig(SymbolClassReader.java:298)
	at org.netbeans.modules.java.source.usages.SymbolClassReader.fillInImpl(SymbolClassReader.java:187)
	at org.netbeans.modules.java.source.usages.SymbolClassReader.fillIn(SymbolClassReader.java:155)
	at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1816)
	at com.sun.tools.javac.code.Symbol.complete(Symbol.java:401)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:784)
	at com.sun.tools.javac.jvm.ClassReader.loadClass(ClassReader.java:1991)
	at com.sun.tools.javac.comp.Resolve.loadClass(Resolve.java:858)
	at com.sun.tools.javac.comp.Resolve.findIdentInPackage(Resolve.java:1028)
	at com.sun.tools.javac.comp.Attr.selectSym(Attr.java:2007)
	at com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:1921)
	at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1655)
	at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:387)
	at com.sun.tools.javac.comp.Attr.attribType(Attr.java:417)
	at com.sun.tools.javac.comp.MemberEnter.attribImportType(MemberEnter.java:804)
	at com.sun.tools.javac.comp.MemberEnter.visitImport(MemberEnter.java:587)
	at com.sun.tools.javac.tree.JCTree$JCImport.accept(JCTree.java:504)
	at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:420)
	at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:432)
	at com.sun.tools.javac.comp.MemberEnter.visitTopLevel(MemberEnter.java:553)
	at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:451)
	at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:420)
	at com.sun.tools.javac.comp.MemberEnter.complete(MemberEnter.java:942)
	at com.sun.tools.javac.code.Symbol.complete(Symbol.java:401)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:784)
	at com.sun.tools.javac.comp.Enter.complete(Enter.java:609)
	at org.netbeans.api.java.source.JavaSource$ErrorHandlingJavadocEnter.main(JavaSource.java:1222)
	at com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:843)
	at com.sun.tools.javac.api.JavacTaskImpl.enter(JavacTaskImpl.java:357)
	at org.netbeans.modules.java.source.TreeLoader.loadTreeFor(TreeLoader.java:121)
	at com.sun.tools.javac.model.JavacElements.getTreeAndTopLevel(JavacElements.java:626)
	at com.sun.tools.javac.model.JavacElements.getTreeAndTopLevel(JavacElements.java:652)
	at com.sun.tools.javac.api.JavacTrees.getPath(JavacTrees.java:175)
	at com.sun.tools.javac.api.JavacTrees.getPath(JavacTrees.java:167)
	at org.netbeans.modules.editor.java.GoToSupport$1.run(GoToSupport.java:295)
	at org.netbeans.modules.editor.java.GoToSupport$1.run(GoToSupport.java:147)
	at org.netbeans.api.java.source.JavaSource.runUserActionTask(JavaSource.java:666)
	at org.netbeans.modules.editor.java.GoToSupport.performGoTo(GoToSupport.java:146)
	at org.netbeans.modules.editor.java.GoToSupport.goTo(GoToSupport.java:357)
	at org.netbeans.modules.editor.java.JavaKit$JavaGoToDeclarationAction.gotoDeclaration(JavaKit.java:725)
	at org.netbeans.editor.ext.ExtKit$GotoDeclarationAction.actionPerformed(ExtKit.java:574)

	at java.util.zip.ZipFile.open(Native Method)
	at java.util.zip.ZipFile.<init>(ZipFile.java:114)
	at java.util.jar.JarFile.<init>(JarFile.java:133)
	at java.util.jar.JarFile.<init>(JarFile.java:97)
	at org.openide.filesystems.JarFileSystem.reOpenJarFile(JarFileSystem.java:665)
	- locked <0x6da92158> (a java.lang.Object)
	at org.openide.filesystems.JarFileSystem.getEntry(JarFileSystem.java:844)
	- locked <0x6da92158> (a java.lang.Object)
	at org.openide.filesystems.JarFileSystem.lastModified(JarFileSystem.java:420)
	at org.openide.filesystems.JarFileSystem$Impl.lastModified(JarFileSystem.java:956)
	at org.openide.filesystems.AbstractFileObject.initLastModified(AbstractFileObject.java:94)
	at org.openide.filesystems.AbstractFileObject.lastModified(AbstractFileObject.java:175)
	at org.openide.filesystems.AbstractFileObject.<init>(AbstractFileObject.java:79)
	at org.openide.filesystems.AbstractFileSystem.createFileObject(AbstractFileSystem.java:447)
	at org.openide.filesystems.AbstractFileObject.createFile(AbstractFileObject.java:136)
	at org.openide.filesystems.AbstractFolder.getChild(AbstractFolder.java:361)
	at org.openide.filesystems.AbstractFolder.getChild(AbstractFolder.java:332)
	at org.openide.filesystems.AbstractFolder.getFileObject(AbstractFolder.java:468)
	- locked <0x6da7a968> (a org.openide.filesystems.AbstractFileObject)
	at org.netbeans.api.java.classpath.ClassPath.findPath(ClassPath.java:876)
	at org.netbeans.api.java.classpath.ClassPath.findResourceImpl(ClassPath.java:890)
	at org.netbeans.api.java.classpath.ClassPath.findAllResources(ClassPath.java:374)
	at org.netbeans.api.java.source.SourceUtils.getFile(SourceUtils.java:480)
	at org.netbeans.api.java.source.ui.ElementOpen.open(ElementOpen.java:77)
	at org.netbeans.modules.editor.java.GoToSupport$2.open(GoToSupport.java:797)
	at org.netbeans.modules.editor.java.GoToSupport.performGoTo(GoToSupport.java:343)
	at org.netbeans.modules.editor.java.GoToSupport.goTo(GoToSupport.java:357)
	at org.netbeans.modules.editor.java.JavaKit$JavaGoToDeclarationAction.gotoDeclaration(JavaKit.java:725)
	at org.netbeans.editor.ext.ExtKit$GotoDeclarationAction.actionPerformed(ExtKit.java:574)

	at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
	at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:228)
	at java.io.File.isFile(File.java:778)
	at org.netbeans.modules.java.source.parsing.FolderArchive.getFiles(FolderArchive.java:110)
	at org.netbeans.modules.java.source.parsing.CachingFileManager.list(CachingFileManager.java:116)
	at org.netbeans.modules.java.source.parsing.ProxyFileManager.list(ProxyFileManager.java:174)
	at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:2182)
	at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1820)
	at com.sun.tools.javac.code.Symbol.complete(Symbol.java:401)
	at com.sun.tools.javac.code.Symbol$PackageSymbol.flags(Symbol.java:633)
	at com.sun.tools.javac.comp.Attr.checkId(Attr.java:2203)
	at com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:1985)
	at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1655)
	at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:387)
	at com.sun.tools.javac.comp.MemberEnter.visitImport(MemberEnter.java:569)
	at com.sun.tools.javac.tree.JCTree$JCImport.accept(JCTree.java:504)
	at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:420)
	at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:432)
	at com.sun.tools.javac.comp.MemberEnter.visitTopLevel(MemberEnter.java:553)
	at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:451)
	at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:420)
	at com.sun.tools.javac.comp.MemberEnter.complete(MemberEnter.java:942)
	at com.sun.tools.javac.code.Symbol.complete(Symbol.java:401)
	at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:784)
	at com.sun.tools.javac.comp.Enter.complete(Enter.java:609)
	at org.netbeans.api.java.source.JavaSource$ErrorHandlingJavadocEnter.main(JavaSource.java:1222)
	at com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:843)
	at com.sun.tools.javac.api.JavacTaskImpl.enter(JavacTaskImpl.java:357)
	at com.sun.tools.javac.api.JavacTaskImpl.enter(JavacTaskImpl.java:303)
	at org.netbeans.api.java.source.JavaSource.moveToPhase(JavaSource.java:1294)
	at org.netbeans.api.java.source.CompilationInfoImpl.toPhase(CompilationInfoImpl.java:280)
	at org.netbeans.api.java.source.CompilationController.toPhase(CompilationController.java:80)
	at org.netbeans.api.java.source.ui.ElementOpen$1.run(ElementOpen.java:197)
	at org.netbeans.api.java.source.ui.ElementOpen$1.run(ElementOpen.java:195)
	at org.netbeans.api.java.source.JavaSource.runUserActionTask(JavaSource.java:666)
	at org.netbeans.api.java.source.ui.ElementOpen.getOffset(ElementOpen.java:194)
	at org.netbeans.api.java.source.ui.ElementOpen.getOpenInfo(ElementOpen.java:142)
	at org.netbeans.api.java.source.ui.ElementOpen.open(ElementOpen.java:78)
	at org.netbeans.modules.editor.java.GoToSupport$2.open(GoToSupport.java:797)
	at org.netbeans.modules.editor.java.GoToSupport.performGoTo(GoToSupport.java:343)
	at org.netbeans.modules.editor.java.GoToSupport.goTo(GoToSupport.java:357)
	at org.netbeans.modules.editor.java.JavaKit$JavaGoToDeclarationAction.gotoDeclaration(JavaKit.java:725)
	at org.netbeans.editor.ext.ExtKit$GotoDeclarationAction.actionPerformed(ExtKit.java:574)

	at java.io.UnixFileSystem.getLastModifiedTime(Native Method)
	at java.io.File.lastModified(File.java:826)
	at java.util.zip.ZipFile.<init>(ZipFile.java:114)
	at java.util.jar.JarFile.<init>(JarFile.java:133)
	at java.util.jar.JarFile.<init>(JarFile.java:112)
	at org.netbeans.JarClassLoader$JarSource.getJarFile(JarClassLoader.java:367)
	- locked <0x69ffb930> (a java.util.HashSet)
	at org.netbeans.JarClassLoader$JarSource.resource(JarClassLoader.java:395)
	at org.netbeans.Archive.getData(Archive.java:193)
	at org.netbeans.JarClassLoader$JarSource.readClass(JarClassLoader.java:390)
	at org.netbeans.JarClassLoader$Source.getClassData(JarClassLoader.java:297)
	at org.netbeans.JarClassLoader.doLoadClass(JarClassLoader.java:203)
	at org.netbeans.ProxyClassLoader.selfLoadClass(ProxyClassLoader.java:262)
	- locked <0x6a374eb0> (a org.netbeans.StandardModule$OneModuleClassLoader)
	at org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:226)
	- locked <0x6a374eb0> (a org.netbeans.StandardModule$OneModuleClassLoader)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
	- locked <0x6a374eb0> (a org.netbeans.StandardModule$OneModuleClassLoader)
	at org.netbeans.api.java.lexer.JavaTokenId$1.embedding(JavaTokenId.java:257)
	at org.netbeans.spi.lexer.LanguageHierarchy$Accessor.embedding(LanguageHierarchy.java:363)
	at org.netbeans.lib.lexer.LexerUtilsConstants.findEmbedding(LexerUtilsConstants.java:208)
	at org.netbeans.lib.lexer.EmbeddingContainer.embeddedTokenList(EmbeddingContainer.java:143)
	- locked <0x678ae720> (a org.netbeans.lib.lexer.inc.IncTokenList)
	at org.netbeans.api.lexer.TokenSequence.embeddedImpl(TokenSequence.java:355)
	at org.netbeans.api.lexer.TokenSequence.embedded(TokenSequence.java:303)
	at org.netbeans.modules.editor.lib2.highlighting.SyntaxHighlighting$HSImpl.moveNext(SyntaxHighlighting.java:316)
	- locked <0x67d3b988> (a org.netbeans.modules.editor.lib2.highlighting.SyntaxHighlighting)
	at org.netbeans.spi.editor.highlighting.support.OffsetsBag.addAllHighlightsImpl(OffsetsBag.java:723)
	at org.netbeans.spi.editor.highlighting.support.OffsetsBag.addAllHighlights(OffsetsBag.java:184)
	- locked <0x67d3e788> (a org.netbeans.modules.editor.lib2.highlighting.OffsetGapList)
	at
org.netbeans.modules.editor.lib2.highlighting.CompoundHighlightsContainer.updateCache(CompoundHighlightsContainer.java:300)
	at
org.netbeans.modules.editor.lib2.highlighting.CompoundHighlightsContainer.getHighlights(CompoundHighlightsContainer.java:169)
	- locked <0x67d3d8e8> (a java.lang.String)
	at org.netbeans.editor.HighlightingDrawLayer.processOffset(HighlightingDrawLayer.java:614)
	at org.netbeans.editor.HighlightingDrawLayer.isActive(HighlightingDrawLayer.java:340)
	at org.netbeans.editor.DrawEngine.drawArea(DrawEngine.java:884)
	at org.netbeans.editor.DrawEngine.drawInternal(DrawEngine.java:1168)
	- locked <0x67ac8790> (a org.netbeans.modules.editor.NbEditorUI)
	at org.netbeans.editor.DrawEngine.draw(DrawEngine.java:1074)
	at org.netbeans.editor.DrawEngineLineView.getModel2ViewRect(DrawEngineLineView.java:413)
	at org.netbeans.editor.DrawEngineLineView.modelToView(DrawEngineLineView.java:482)
	at org.netbeans.editor.DrawEngineLineView.getPreferredSpan(DrawEngineLineView.java:305)
	at org.netbeans.editor.DrawEngineLineView.minorAxisUpdateLayout(DrawEngineLineView.java:802)
	at org.netbeans.editor.DrawEngineLineView.updateLayout(DrawEngineLineView.java:757)
	at org.netbeans.lib.editor.view.GapBoxViewChildren.childrenUpdateLayout(GapBoxViewChildren.java:900)
	at org.netbeans.lib.editor.view.GapBoxViewChildren.childrenUpdateLayout(GapBoxViewChildren.java:905)
	at org.netbeans.lib.editor.view.GapBoxView.updateLayout(GapBoxView.java:750)
	at org.netbeans.lib.editor.view.GapBoxView.directUpdateLayout(GapBoxView.java:898)
	at org.netbeans.lib.editor.view.GapDocumentView.directUpdateLayout(GapDocumentView.java:187)
	at org.netbeans.lib.editor.view.GapBoxView.markLayoutInvalid(GapBoxView.java:885)
	at org.netbeans.lib.editor.view.GapBoxViewChildren.markLayoutInvalid(GapBoxViewChildren.java:859)
	at org.netbeans.lib.editor.view.GapBoxView.preferenceChanged(GapBoxView.java:1273)
	at org.netbeans.editor.DrawEngineLineView.setEstimatedSpan(DrawEngineLineView.java:184)
	at org.netbeans.editor.DrawEngineLineView.modelToView(DrawEngineLineView.java:454)
	at org.netbeans.editor.DrawEngineLineView.modelToView(DrawEngineLineView.java:441)
	at org.netbeans.lib.editor.view.GapBoxView.modelToView(GapBoxView.java:1501)
	at org.netbeans.editor.view.spi.LockView.modelToView(LockView.java:423)
	at javax.swing.plaf.basic.BasicTextUI$RootView.modelToView(BasicTextUI.java:1496)
	at javax.swing.plaf.basic.BasicTextUI.modelToView(BasicTextUI.java:1034)
	at org.netbeans.editor.BaseCaret.updateCaretBounds(BaseCaret.java:337)
	at org.netbeans.editor.BaseCaret.update(BaseCaret.java:629)
	at org.netbeans.editor.BaseCaret.paint(BaseCaret.java:492)
	at javax.swing.plaf.basic.BasicTextUI.paintSafely(BasicTextUI.java:730)
	at javax.swing.plaf.basic.BasicTextUI.paint(BasicTextUI.java:868)
	at javax.swing.plaf.basic.BasicTextUI.update(BasicTextUI.java:847)

No mention of apisupport or indeed of the project system; just Java parsing and editor window painting.

If you can reproduce some particular problem that you believe is fixable, please specify what that is.