Assertion failure stacktrace needs decoding

I have a one-shot timer which refreshes my plugins UI 500ms after a
document has been changed. While I was doing some unrelated work using
the Structural Search and Replace, when I previewed a replacement and
then performed the replacement, the following assertion failure popped
up. I would appreciate it if somebody from JetBrains could decode it and
tell me what's going wrong:

2004-06-08 17:19:49,707 ERROR -
.roots.impl.DirectoryIndexImpl - Assertion failed
2004-06-08 17:19:49,707 ERROR -
.roots.impl.DirectoryIndexImpl - IntelliJ IDEA (Pallada) Build #2097
2004-06-08 17:19:49,707 ERROR -
.roots.impl.DirectoryIndexImpl - JDK: 1.4.2_04
2004-06-08 17:19:49,707 ERROR -
.roots.impl.DirectoryIndexImpl - VM: Java HotSpot(TM) Client VM
2004-06-08 17:19:49,707 ERROR -
.roots.impl.DirectoryIndexImpl - Vendor: Sun Microsystems Inc.
2004-06-08 17:19:49,707 ERROR -
.roots.impl.DirectoryIndexImpl - OS: Windows 2000
2004-06-08 17:19:49,707 ERROR -
.roots.impl.DirectoryIndexImpl - Assertion failed
java.lang.Throwable
at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:64)
at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:72)
at com.intellij.openapi.roots.b.j.a(j.java:365)
at com.intellij.openapi.roots.b.s.getModuleForFile(s.java:21)
at com.intellij.psi.f.d.a.b.a(b.java:6)
at com.intellij.psi.f.e.g.d.getResolveScope(d.java:24)
at com.intellij.psi.f.e.j.e(j.java:217)
at com.intellij.psi.f.e.j.access$000(j.java:351)
at com.intellij.psi.f.e.j$a_.b(j$a_.java:12)
at com.intellij.psi.f.e.j$a_.a(j$a_.java:8)
at com.intellij.psi.f.e.h.c.a(c.java:86)
at com.intellij.psi.f.e.j.multiResolve(j.java:73)
at com.intellij.psi.f.e.j.advancedResolve(j.java:144)
at com.intellij.psi.f.e.j.resolve(j.java:55)
at com.intellij.psi.f.e.bi.resolve(bi.java:27)
at com.intellij.psi.f.e.bb.getSingleClassImports(bb.java:150)
at com.intellij.psi.f.e.bb.a(bb.java:77)
at com.intellij.psi.f.e.bb.processDeclarations(bb.java:22)
at com.intellij.psi.d.a.a.a(a.java:39)
at com.intellij.psi.d.a.a.a(a.java:1)
at com.intellij.psi.d.a.a.a(a.java:168)
at com.intellij.psi.d.a.a.a(a.java:92)
at com.intellij.psi.f.e.j.e(j.java:155)
at com.intellij.psi.f.e.j.access$000(j.java:351)
at com.intellij.psi.f.e.j$a_.b(j$a_.java:12)
at com.intellij.psi.f.e.j$a_.a(j$a_.java:8)
at com.intellij.psi.f.e.h.c.a(c.java:86)
at com.intellij.psi.f.e.j.multiResolve(j.java:73)
at com.intellij.psi.f.e.j.advancedResolve(j.java:144)
at com.intellij.psi.f.e.j.resolve(j.java:55)
at com.intellij.psi.f.e.j.getCanonicalText(j.java:287)
at com.intellij.psi.f.e.bq.getCanonicalText(bq.java:13)
at
com.quest.ideaplugins.i18nplugin.model.CatParser.isCATField(CatParser.java:106)
at
com.quest.ideaplugins.i18nplugin.model.CatParser.findCATField(CatParser.java:98)
at
com.quest.ideaplugins.i18nplugin.model.CatParser.parseClass(CatParser.java:72)
at
com.quest.ideaplugins.i18nplugin.model.CatParser.parseFile(CatParser.java:67)
at
com.quest.ideaplugins.i18nplugin.view.CatListPanel.updateTableModel(CatListPanel.java:214)
at
com.quest.ideaplugins.i18nplugin.view.CatListPanel.refresh(CatListPanel.java:182)
at
com.quest.ideaplugins.i18nplugin.view.CatListPanel$1.actionPerformed(CatListPanel.java:78)
at javax.swing.Timer.fireActionPerformed(Timer.java:271)
at javax.swing.Timer$DoPostEvent.run(Timer.java:201)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
at com.intellij.ide.t.b(t.java:100)
at com.intellij.ide.t.a(t.java:16)
at com.intellij.ide.t.dispatchEvent(t.java:2)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

--
Gordon Tyler (Software Developer)
Quest Software <http://java.quest.com/>
260 King Street East, Toronto, Ontario M5A 4L5, Canada
Voice: 416-643-4846 | Fax: 416-594-1919

4 comments
Comment actions Permalink

Assertion in DirectoryIndexImpl says the project have been already disposed. That probably means the project has been
closed prior your timer fires. Try asking !project.isDisposed() before any activity invoked by timer.

2004-06-08 17:19:49,707 ERROR - .roots.impl.DirectoryIndexImpl - Assertion failed
2004-06-08 17:19:49,707 ERROR - .roots.impl.DirectoryIndexImpl - IntelliJ IDEA (Pallada) Build #2097
2004-06-08 17:19:49,707 ERROR - .roots.impl.DirectoryIndexImpl - JDK: 1.4.2_04
2004-06-08 17:19:49,707 ERROR - .roots.impl.DirectoryIndexImpl - VM: Java HotSpot(TM) Client VM
2004-06-08 17:19:49,707 ERROR - .roots.impl.DirectoryIndexImpl - Vendor: Sun Microsystems Inc.
2004-06-08 17:19:49,707 ERROR - .roots.impl.DirectoryIndexImpl - OS: Windows 2000
2004-06-08 17:19:49,707 ERROR - .roots.impl.DirectoryIndexImpl - Assertion failed
java.lang.Throwable
at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:64)
at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:72)
at com.intellij.openapi.roots.impl.DirectoryIndexImpl.getInfoForDirectory(DirectoryIndexImpl.java:399)
at com.intellij.openapi.roots.impl.ProjectFileIndexImpl.getModuleForFile(ProjectFileIndexImpl.java:85)
at com.intellij.psi.impl.file.impl.FileManagerImpl.getResolveScope(FileManagerImpl.java:271)
at com.intellij.psi.impl.source.tree.CompositePsiElement.getResolveScope(CompositePsiElement.java:219)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.resolve(PsiJavaCodeReferenceElementImpl.java:368)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.XXX(PsiJavaCodeReferenceElementImpl.java:27)
at
com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl$OurGenericsResolver._resolve(PsiJavaCodeReferenceElementImpl.java:304)
at
com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl$OurGenericsResolver.resolve(PsiJavaCodeReferenceElementImpl.java:318)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:154)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.multiResolve(PsiJavaCodeReferenceElementImpl.java:350)
at
com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.advancedResolve(PsiJavaCodeReferenceElementImpl.java:336)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.resolve(PsiJavaCodeReferenceElementImpl.java:295)
at com.intellij.psi.impl.source.PsiImportStatementBaseImpl.resolve(PsiImportStatementBaseImpl.java:62)
at com.intellij.psi.impl.source.PsiJavaFileBaseImpl.getSingleClassImports(PsiJavaFileBaseImpl.java:166)
at com.intellij.psi.impl.source.PsiJavaFileBaseImpl.processDeclarationsNoGuess(PsiJavaFileBaseImpl.java:294)
at com.intellij.psi.impl.source.PsiJavaFileBaseImpl.processDeclarations(PsiJavaFileBaseImpl.java:261)
at com.intellij.psi.scope.util.PsiScopesUtil.processScope(PsiScopesUtil.java:68)
at com.intellij.psi.scope.util.PsiScopesUtil.treeWalkUp(PsiScopesUtil.java:35)
at com.intellij.psi.scope.util.PsiScopesUtil.resolveAndWalk(PsiScopesUtil.java:162)
at com.intellij.psi.scope.util.PsiScopesUtil.resolveAndWalk(PsiScopesUtil.java:92)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.resolve(PsiJavaCodeReferenceElementImpl.java:418)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.XXX(PsiJavaCodeReferenceElementImpl.java:27)
at
com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl$OurGenericsResolver._resolve(PsiJavaCodeReferenceElementImpl.java:304)
at
com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl$OurGenericsResolver.resolve(PsiJavaCodeReferenceElementImpl.java:318)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:154)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.multiResolve(PsiJavaCodeReferenceElementImpl.java:350)
at
com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.advancedResolve(PsiJavaCodeReferenceElementImpl.java:336)
at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.resolve(PsiJavaCodeReferenceElementImpl.java:295)
at
com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.getCanonicalText(PsiJavaCodeReferenceElementImpl.java:249)
at com.intellij.psi.impl.source.PsiClassReferenceType.getCanonicalText(PsiClassReferenceType.java:152)
at com.quest.ideaplugins.i18nplugin.model.CatParser.isCATField(CatParser.java:106)
at com.quest.ideaplugins.i18nplugin.model.CatParser.findCATField(CatParser.java:98)
at com.quest.ideaplugins.i18nplugin.model.CatParser.parseClass(CatParser.java:72)
at com.quest.ideaplugins.i18nplugin.model.CatParser.parseFile(CatParser.java:67)
at com.quest.ideaplugins.i18nplugin.view.CatListPanel.updateTableModel(CatListPanel.java:214)
at com.quest.ideaplugins.i18nplugin.view.CatListPanel.refresh(CatListPanel.java:182)
at com.quest.ideaplugins.i18nplugin.view.CatListPanel$1.actionPerformed(CatListPanel.java:78)
at javax.swing.Timer.fireActionPerformed(Timer.java:271)
at javax.swing.Timer$DoPostEvent.run(Timer.java:201)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:346)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:337)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:251)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

0
Comment actions Permalink

Maxim Shafirov (JetBrains) wrote:

Assertion in DirectoryIndexImpl says the project have been already
disposed. That probably means the project has been closed prior your
timer fires. Try asking !project.isDisposed() before any activity
invoked by timer.


I don't understand how the project could be disposed if I was using
the project and editing code (which actually triggered the refresh).

Ciao,
Gordon

--
Gordon Tyler (Software Developer)
Quest Software <http://java.quest.com/>
260 King Street East, Toronto, Ontario M5A 4L5, Canada
Voice: 416-643-4846 | Fax: 416-594-1919

0
Comment actions Permalink

Gordon Tyler wrote:

Maxim Shafirov (JetBrains) wrote:

>> Assertion in DirectoryIndexImpl says the project have been already
>> disposed. That probably means the project has been closed prior your
>> timer fires. Try asking !project.isDisposed() before any activity
>> invoked by timer.


I don't understand how the project could be disposed if I was using
the project and editing code (which actually triggered the refresh).

Ciao,
Gordon

Couldn't that be OTHER project that you've opened and closed later?

--
Maxim Shafirov
IntelliJ Labs / JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"

0
Comment actions Permalink

Maxim Shafirov (JetBrains) wrote:

>> I don't understand how the project could be disposed if I was using
>> the project and editing code (which actually triggered the refresh).
>>

Couldn't that be OTHER project that you've opened and closed later?


Hmmm... You may have a point there. I'll double-check if that's the
case. The projectDisposed event to the project component should cancel
the timer.

Thanks,
Gordon

--
Gordon Tyler (Software Developer)
Quest Software <http://java.quest.com/>
260 King Street East, Toronto, Ontario M5A 4L5, Canada
Voice: 416-643-4846 | Fax: 416-594-1919

0

Please sign in to leave a comment.