apache / apache/grails-intellij-plugin
IndexNotReadyException on attempt to view domain class dependencies diagram while indexing
- Dominant language
- Java
- Stars
- 17
- Forks
- 4
- Avg merge
- 5d 15h
- Merged PRs (30d)
- 4
Description
To reproduce;
1. Open Grails project (grails library is not bundled to IDE)
2. Open domain class in editor, click "Configure Grails SDK", specify grails library (used grails-2.5.0)
3. Click "Domain class dependencies" tab while indexing is still in progress => exception:
(Diagram view apppears empty after indexing is finished, restart helps)
Please change caller according to com.intellij.openapi.project.IndexNotReadyException documentation
com.intellij.openapi.project.IndexNotReadyException: Please change caller according to com.intellij.openapi.project.IndexNotReadyException documentation
```
at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:871)
at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:818)
at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:801)
at com.intellij.psi.stubs.StubIndexImpl.a(StubIndexImpl.java:269)
at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:250)
at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:145)
at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:135)
at com.intellij.psi.impl.java.stubs.index.JavaFullClassNameIndex.get(JavaFullClassNameIndex.java:48)
at com.intellij.psi.impl.file.impl.JavaFileManagerImpl.a(JavaFileManagerImpl.java:122)
at com.intellij.psi.impl.file.impl.JavaFileManagerImpl.findClass(JavaFileManagerImpl.java:115)
at com.intellij.psi.impl.PsiElementFinderImpl.findClass(PsiElementFinderImpl.java:54)
at com.intellij.psi.impl.JavaPsiFacadeImpl.a(JavaPsiFacadeImpl.java:121)
at com.intellij.psi.impl.JavaPsiFacadeImpl.findClass(JavaPsiFacadeImpl.java:98)
at org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager.findClassWithCache(GroovyPsiManager.java:142)
at org.jetbrains.plugins.groovy.lang.psi.util.GrClassImplUtil.getExtendsListTypes(GrClassImplUtil.java:129)
at org.jetbrains.plugins.groovy.lang.psi.impl.statements.typedef.GrTypeDefinitionImpl$1.compute(GrTypeDefinitionImpl.java:284)
at com.intellij.psi.util.CachedValuesManager$1.compute(CachedValuesManager.java:131)
at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:49)
at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:222)
at com.intellij.psi.impl.PsiCachedValue.getValueWithLock(PsiCachedValue.java:48)
at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:38)
at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:83)
at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:127)
at org.jetbrains.plugins.groovy.lang.psi.impl.statements.typedef.GrTypeDefinitionImpl.getExtendsListTypes(GrTypeDefinitionImpl.java:281)
at org.jetbrains.plugins.groovy.lang.psi.util.GrClassImplUtil.getSuperTypes(GrClassImplUtil.java:204)
at org.jetbrains.plugins.groovy.lang.psi.impl.statements.typedef.GrTypeDefinitionImpl.getSuperTypes(GrTypeDefinitionImpl.java:327)
at org.jetbrains.plugins.groovy.lang.psi.util.GrClassImplUtil.getSupers(GrClassImplUtil.java:274)
at org.jetbrains.plugins.groovy.lang.psi.impl.statements.typedef.GrTypeDefinitionImpl.getSupers(GrTypeDefinitionImpl.java:321)
at org.jetbrains.plugins.groovy.lang.resolve.CollectClassMembersUtil.processCyclicDependence(CollectClassMembersUtil.java:107)
at org.jetbrains.plugins.groovy.lang.resolve.CollectClassMembersUtil.isCyclicDependence(CollectClassMembersUtil.java:97)
at org.jetbrains.plugins.groovy.lang.resolve.CollectClassMembersUtil.getCachedMembers(CollectClassMembersUtil.java:86)
at org.jetbrains.plugins.groovy.lang.resolve.CollectClassMembersUtil.getAllInnerClasses(CollectClassMembersUtil.java:116)
at org.jetbrains.plugins.groovy.lang.psi.util.GrClassImplUtil$4.compute(GrClassImplUtil.java:462)
at org.jetbrains.plugins.groovy.lang.psi.util.GrClassImplUtil$4.compute(GrClassImplUtil.java:458)
at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:112)
at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
at org.jetbrains.plugins.groovy.lang.psi.util.GrClassImplUtil.getInnerClassesForResolve(GrClassImplUtil.java:458)
at org.jetbrains.plugins.groovy.lang.psi.util.GrClassImplUtil.processDeclarations(GrClassImplUtil.java:374)
at org.jetbrains.plugins.groovy.lang.psi.impl.statements.typedef.GrTypeDefinitionImpl.processDeclarations(GrTypeDefinitionImpl.java:227)
at org.jetbrains.plugins.groovy.lang.resolve.ResolveUtil.doProcessDeclarations(ResolveUtil.java:161)
at org.jetbrains.plugins.groovy.lang.resolve.DeclarationCacheKey.collectScopeDeclarations(DeclarationCacheKey.java:136)
at org.jetbrains.plugins.groovy.lang.resolve.DeclarationCacheKey.access$000(DeclarationCacheKey.java:42)
at org.jetbrains.plugins.groovy.lang.resolve.DeclarationCacheKey$2.process(DeclarationCacheKey.java:125)
at org.jetbrains.plugins.groovy.lang.resolve.DeclarationCacheKey$2.process(DeclarationCacheKey.java:122)
at com.intellij.psi.util.PsiTreeUtil.treeWalkUp(PsiTreeUtil.java:1009)
at org.jetbrains.plugins.groovy.lang.resolve.DeclarationCacheKey.collectDeclarations(DeclarationCacheKey.java:122)
at org.jetbrains.plugins.groovy.lang.resolve.DeclarationCacheKey.getAllDeclarations(DeclarationCacheKey.java:144)
at org.jetbrains.plugins.groovy.lang.resolve.DeclarationCacheKey.processCachedDeclarations(DeclarationCacheKey.java:151)
at org.jetbrains.plugins.groovy.lang.resolve.ResolveUtil.treeWalkUp(ResolveUtil.java:119)
at org.jetbrains.plugins.groovy.lang.resolve.ResolveUtil.treeWalkUp(ResolveUtil.java:100)
at org.jetbrains.plugins.groovy.lang.psi.impl.types.GrCodeReferenceElementImpl$OurResolver._resolve(GrCodeReferenceElementImpl.java:364)
at org.jetbrains.plugins.groovy.lang.psi.impl.types.GrCodeReferenceElementImpl$OurResolver.resolve(GrCodeReferenceElementImpl.java:283)
at org.jetbrains.plugins.groovy.lang.psi.impl.types.GrCodeReferenceElementImpl$OurResolver.resolve(GrCodeReferenceElementImpl.java:277)
at com.intellij.psi.impl.source.resolve.ResolveCache$3.compute(ResolveCache.java:142)
at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:112)
at com.intellij.psi.impl.source.resolve.ResolveCache.a(ResolveCache.java:139)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:167)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:159)
at org.jetbrains.plugins.groovy.lang.psi.impl.InferenceContext$1.multiResolve(InferenceContext.java:69)
at org.jetbrains.plugins.groovy.lang.psi.impl.types.GrCodeReferenceElementImpl.resolve(GrCodeReferenceElementImpl.java:123)
at org.jetbrains.plugins.groovy.lang.psi.impl.types.GrCodeReferenceElementImpl.getCanonicalText(GrCodeReferenceElementImpl.java:176)
at org.jetbrains.plugins.groovy.lang.psi.impl.GrClassReferenceType.getCanonicalText(GrClassReferenceType.java:132)
at org.jetbrains.plugins.grails.references.domain.DomainClassUtils.buildSourceToOutEdgesMapByFields(DomainClassUtils.java:220)
at org.jetbrains.plugins.grails.references.domain.DomainClassUtils.buildMapForTypeDefinition(DomainClassUtils.java:161)
at org.jetbrains.plugins.grails.references.domain.DomainClassUtils.buildNodesAndEdges(DomainClassUtils.java:139)
at org.jetbrains.plugins.grails.perspectives.graph.DomainClassesRelationsDataModel.updateDataModel(DomainClassesRelationsDataModel.java:73)
at org.jetbrains.plugins.grails.perspectives.graph.DomainClassesRelationsDataModel.refreshDataModel(DomainClassesRelationsDataModel.java:69)
at org.jetbrains.plugins.grails.perspectives.graph.DomainClassesRelationsDataModel.getNodes(DomainClassesRelationsDataModel.java:62)
at com.intellij.openapi.graph.impl.builder.GraphBuilderImpl.createDataModel(GraphBuilderImpl.java:390)
at com.intellij.openapi.graph.impl.builder.GraphBuilderImpl.buildModel(GraphBuilderImpl.java:384)
at com.intellij.openapi.graph.impl.builder.GraphBuilderImpl.initialize(GraphBuilderImpl.java:98)
at org.jetbrains.plugins.grails.perspectives.PerspectiveFileEditorComponent.(PerspectiveFileEditorComponent.java:86)
at org.jetbrains.plugins.grails.perspectives.DomainClassesRelationsEditor.getDependenciesComponent(DomainClassesRelationsEditor.java:84)
at org.jetbrains.plugins.grails.perspectives.DomainClassesRelationsEditor.createCustomComponent(DomainClassesRelationsEditor.java:61)
at com.intellij.util.xml.ui.PerspectiveFileEditor.ensureInitialized(PerspectiveFileEditor.java:231)
at com.intellij.util.xml.ui.PerspectiveFileEditor.selectNotify(PerspectiveFileEditor.java:217)
at com.intellij.openapi.fileEditor.impl.EditorComposite$1$1.run(EditorComposite.java:145)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:124)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:99)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:85)
at com.intellij.openapi.fileEditor.impl.EditorComposite$1.selectionChanged(EditorComposite.java:151)
at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:116)
at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:368)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:355)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:341)
at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:334)
at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:42)
at com.intellij.util.messages.impl.MessageBusImpl$2.invoke(MessageBusImpl.java:223)
at com.sun.proxy.$Proxy94.selectionChanged(Unknown Source)
at com.intellij.openapi.fileEditor.impl.EditorComposite$3.run(EditorComposite.java:224)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$14$1.run(FileEditorManagerImpl.java:1042)
at com.intellij.openapi.wm.impl.FocusManagerImpl.a(FocusManagerImpl.java:672)
at com.intellij.openapi.wm.impl.FocusManagerImpl.g(FocusManagerImpl.java:656)
at com.intellij.openapi.wm.impl.FocusManagerImpl.e(FocusManagerImpl.java:626)
at com.intellij.openapi.wm.impl.FocusManagerImpl.access$200(FocusManagerImpl.java:60)
at com.intellij.openapi.wm.impl.FocusManagerImpl$11.run(FocusManagerImpl.java:522)
at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2284)
at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:500)
at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:495)
at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.doWhenFocusSettlesDown(IdeFocusManagerImpl.java:64)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$14.run(FileEditorManagerImpl.java:1039)
at com.intellij.openapi.util.BusyObject$Impl$Simple.execute(BusyObject.java:123)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.notifyPublisher(FileEditorManagerImpl.java:1035)
at com.intellij.openapi.fileEditor.impl.EditorComposite.a(EditorComposite.java:219)
at com.intellij.openapi.fileEditor.impl.EditorComposite.access$600(EditorComposite.java:65)
at com.intellij.openapi.fileEditor.impl.EditorComposite$MyChangeListener.stateChanged(EditorComposite.java:390)
at com.intellij.ui.JBTabsPaneImpl.a(JBTabsPaneImpl.java:81)
at com.intellij.ui.JBTabsPaneImpl.access$100(JBTabsPaneImpl.java:36)
at com.intellij.ui.JBTabsPaneImpl$2.selectionChanged(JBTabsPaneImpl.java:67)
at com.intellij.ui.tabs.impl.JBTabsImpl.fireSelectionChanged(JBTabsImpl.java:962)
at com.intellij.ui.tabs.impl.JBTabsImpl.executeSelectionChange(JBTabsImpl.java:915)
at com.intellij.ui.tabs.impl.JBTabsImpl._setSelected(JBTabsImpl.java:879)
at com.intellij.ui.tabs.impl.JBTabsImpl.select(JBTabsImpl.java:861)
at com.intellij.ui.tabs.impl.TabLabel$1.mousePressed(TabLabel.java:89)
at java.awt.Component.processMouseEvent(Component.java:6522)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4530)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:751)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:702)
at java.awt.EventQueue$3.run(EventQueue.java:696)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:724)
at java.awt.EventQueue$4.run(EventQueue.java:722)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:721)
at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:872)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:657)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:396)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
```
---
*Imported from [IDEA-143190](https://youtrack.jetbrains.com/issue/IDEA-143190) · Type: Bug · Votes: 0*
*Comments, attachments, dates and reporter are not part of the export — follow the link above for the full history.*
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at org.jetbrains.plugins.grails.perspectives.graph.DomainClassesRelationsDataModel and DomainClassUtils, following the stack into the domain-class dependencies editor. Review the IndexNotReadyException documentation and the lookup path used while indexing is active. Done means opening the dependency diagram during indexing no longer raises the exception and the diagram is usable after indexing finishes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- groovy, java
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 67/100