meaning of this stacktrace ?
Sometimes,
final PsiElement resolvedElement = i_visitedExpression.resolve();
would throw the stacktrace below.
Any idea what it could mean?
TIA
Error message: Assertion failed
java.lang.Throwable
at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:45)
at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:108)
at com.intellij.openapi.roots.b.f.a(f.java:48)
at com.intellij.openapi.roots.b.n.getModuleForFile(n.java:35)
at com.intellij.psi.impl.e.a.b.a(b.java:149)
at com.intellij.psi.impl.source.g.s.getResolveScope(s.java:71)
at com.intellij.psi.impl.source.l.e(l.java:35)
at com.intellij.psi.impl.source.l.access$000(l.java:263)
at com.intellij.psi.impl.source.l$a_.b(l$a_.java:6)
at com.intellij.psi.impl.source.l$a_.a(l$a_.java:7)
at com.intellij.psi.impl.source.d.c.a(c.java:22)
at com.intellij.psi.impl.source.l.multiResolve(l.java:77)
at com.intellij.psi.impl.source.l.advancedResolve(l.java:197)
at com.intellij.psi.impl.source.l.resolve(l.java:253)
at com.intellij.psi.impl.source.bf.resolve(bf.java:41)
at com.intellij.psi.impl.source.z.getSingleClassImports(z.java:138)
at com.intellij.psi.impl.source.z.a(z.java:106)
at com.intellij.psi.impl.source.z.processDeclarations(z.java:64)
at com.intellij.psi.scope.h.a(h.java:190)
at com.intellij.psi.scope.h.a(h.java:193)
at com.intellij.psi.scope.h.a(h.java:195)
at com.intellij.psi.scope.h.a(h.java:26)
at com.intellij.psi.impl.source.l.e(l.java:169)
at com.intellij.psi.impl.source.l.access$000(l.java:263)
at com.intellij.psi.impl.source.l$a_.b(l$a_.java:6)
at com.intellij.psi.impl.source.l$a_.a(l$a_.java:7)
at com.intellij.psi.impl.source.d.c.a(c.java:22)
at com.intellij.psi.impl.source.l.multiResolve(l.java:77)
at com.intellij.psi.impl.source.l.advancedResolve(l.java:197)
at com.intellij.psi.impl.source.bl.resolveGenerics(bl.java:28)
at com.intellij.psi.impl.p.a(p.java:393)
at com.intellij.psi.impl.p.b(p.java:171)
at com.intellij.psi.impl.p.d(p.java:43)
at com.intellij.psi.impl.p.b(p.java:108)
at com.intellij.psi.impl.p.d(p.java:81)
at com.intellij.psi.impl.p.b(p.java:108)
at com.intellij.psi.impl.p.d(p.java:113)
at com.intellij.psi.impl.p.b(p.java:108)
at com.intellij.psi.impl.p.a(p.java:57)
at com.intellij.psi.impl.source.s.processDeclarations(s.java:38)
at com.intellij.psi.scope.h.a(h.java:119)
at com.intellij.psi.scope.h.a(h.java:193)
at com.intellij.psi.scope.h.a(h.java:195)
at com.intellij.psi.scope.h.a(h.java:26)
at com.intellij.psi.scope.h.a(h.java:137)
at com.intellij.psi.impl.source.g.a.bf.b(bf.java:10)
at com.intellij.psi.impl.source.g.a.bf.access$000(bf.java:141)
at com.intellij.psi.impl.source.g.a.bf$a_.b(bf$a_.java:2)
at com.intellij.psi.impl.source.g.a.bf$a_.a(bf$a_.java:3)
at com.intellij.psi.impl.source.d.c.a(c.java:22)
at com.intellij.psi.impl.source.g.a.bf.multiResolve(bf.java:111)
at com.intellij.psi.impl.source.g.a.bf.advancedResolve(bf.java:6)
at com.intellij.psi.impl.source.g.a.bf.resolve(bf.java:68)
at
ravet.camouflagePlugin.helpers.codeAnalysis.StaticImportUtil.isGoodCandidate(StaticImportUtil.java:52)
at
ravet.camouflagePlugin.doIt.alls.visitors.VisitorCamouAll_$StaticImports.visitReferenceExpression(VisitorCamouAll_.j
Please sign in to leave a comment.
From which build it is?
--
Valentin Kipiatkov
Chief Scientist, Vice President of Product Development
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"
"Alain Ravet" <alain.ravet.list@wanadoo.be> wrote in message
news:bs71m9$m8$1@is.intellij.net...
>
>
>
>
>
ravet.camouflagePlugin.helpers.codeAnalysis.StaticImportUtil.isGoodCandidate
(StaticImportUtil.java:52)
>
ravet.camouflagePlugin.doIt.alls.visitors.VisitorCamouAll_$StaticImports.vis
itReferenceExpression(VisitorCamouAll_.j
Valentin Kipiatkov (JetBrains) wrote:
>From which build it is?
>
It happened on 1002, but the plugin was compiled against 977.
While you're here, I also get this one in 1002 :
Error message: Assertion failed
java.lang.Throwable
at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:45)
at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:108)
at com.intellij.psi.impl.e.a.b.b(b.java:143)
at com.intellij.psi.impl.e.a.b.a(b.java:322)
at com.intellij.psi.impl.e.a.b.a(b.java:32)
at com.intellij.psi.impl.bg.findFile(bg.java:112)
at ravet.camouflagePlugin.helpers.util.U.fileIn(U.java:92)
Alain
"Alain Ravet" <alain.ravet.list@wanadoo.be> wrote in message
news:bs71m9$m8$1@is.intellij.net...
>>
>> Sometimes,
>> final PsiElement resolvedElement = i_visitedExpression.resolve();
>>
>> would throw the stacktrace below.
>> Any idea what it could mean?
>> TIA
>>
>>
>> Error message: Assertion failed
>> java.lang.Throwable
>> at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:45)
>> at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:108)
>> at com.intellij.openapi.roots.b.f.a(f.java:48)
>> at com.intellij.openapi.roots.b.n.getModuleForFile(n.java:35)
>> at com.intellij.psi.impl.e.a.b.a(b.java:149)
>> at com.intellij.psi.impl.source.g.s.getResolveScope(s.java:71)
>> at com.intellij.psi.impl.source.l.e(l.java:35)
>> at com.intellij.psi.impl.source.l.access$000(l.java:263)
>> at com.intellij.psi.impl.source.l$a_.b(l$a_.java:6)
>> at com.intellij.psi.impl.source.l$a_.a(l$a_.java:7)
>> at com.intellij.psi.impl.source.d.c.a(c.java:22)
>> at com.intellij.psi.impl.source.l.multiResolve(l.java:77)
>> at com.intellij.psi.impl.source.l.advancedResolve(l.java:197)
>> at com.intellij.psi.impl.source.l.resolve(l.java:253)
>> at com.intellij.psi.impl.source.bf.resolve(bf.java:41)
>> at com.intellij.psi.impl.source.z.getSingleClassImports(z.java:138)
>> at com.intellij.psi.impl.source.z.a(z.java:106)
>> at com.intellij.psi.impl.source.z.processDeclarations(z.java:64)
>> at com.intellij.psi.scope.h.a(h.java:190)
>> at com.intellij.psi.scope.h.a(h.java:193)
>> at com.intellij.psi.scope.h.a(h.java:195)
>> at com.intellij.psi.scope.h.a(h.java:26)
>> at com.intellij.psi.impl.source.l.e(l.java:169)
>> at com.intellij.psi.impl.source.l.access$000(l.java:263)
>> at com.intellij.psi.impl.source.l$a_.b(l$a_.java:6)
>> at com.intellij.psi.impl.source.l$a_.a(l$a_.java:7)
>> at com.intellij.psi.impl.source.d.c.a(c.java:22)
>> at com.intellij.psi.impl.source.l.multiResolve(l.java:77)
>> at com.intellij.psi.impl.source.l.advancedResolve(l.java:197)
>> at com.intellij.psi.impl.source.bl.resolveGenerics(bl.java:28)
>> at com.intellij.psi.impl.p.a(p.java:393)
>> at com.intellij.psi.impl.p.b(p.java:171)
>> at com.intellij.psi.impl.p.d(p.java:43)
>> at com.intellij.psi.impl.p.b(p.java:108)
>> at com.intellij.psi.impl.p.d(p.java:81)
>> at com.intellij.psi.impl.p.b(p.java:108)
>> at com.intellij.psi.impl.p.d(p.java:113)
>> at com.intellij.psi.impl.p.b(p.java:108)
>> at com.intellij.psi.impl.p.a(p.java:57)
>> at com.intellij.psi.impl.source.s.processDeclarations(s.java:38)
>> at com.intellij.psi.scope.h.a(h.java:119)
>> at com.intellij.psi.scope.h.a(h.java:193)
>> at com.intellij.psi.scope.h.a(h.java:195)
>> at com.intellij.psi.scope.h.a(h.java:26)
>> at com.intellij.psi.scope.h.a(h.java:137)
>> at com.intellij.psi.impl.source.g.a.bf.b(bf.java:10)
>> at com.intellij.psi.impl.source.g.a.bf.access$000(bf.java:141)
>> at com.intellij.psi.impl.source.g.a.bf$a_.b(bf$a_.java:2)
>> at com.intellij.psi.impl.source.g.a.bf$a_.a(bf$a_.java:3)
>> at com.intellij.psi.impl.source.d.c.a(c.java:22)
>> at com.intellij.psi.impl.source.g.a.bf.multiResolve(bf.java:111)
>> at com.intellij.psi.impl.source.g.a.bf.advancedResolve(bf.java:6)
>> at com.intellij.psi.impl.source.g.a.bf.resolve(bf.java:68)
>> at
>>
>
ravet.camouflagePlugin.helpers.codeAnalysis.StaticImportUtil.isGoodCandidate
(StaticImportUtil.java:52)
You access PSI after it's been disposed (that is, e.g. project was closed).
--
Valentin Kipiatkov
Chief Scientist, Vice President of Product Development
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"
"Alain Ravet" <alain.ravet.list@wanadoo.be> wrote in message
news:bs7fbu$419$1@is.intellij.net...
>
>
>
>
>
>
i_visitedExpression.resolve();
com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:45)
com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:108)
>
ravet.camouflagePlugin.helpers.codeAnalysis.StaticImportUtil.isGoodCandidate
Valentin Kipiatkov (JetBrains) wrote:
>You access PSI after it's been disposed (that is, e.g. project was closed).
>
>
I'm puzzled : this happened while processing a freshly opened editor
contents, so no closed project here.
Under what other conditions could this - disposed PSI element - happen?!
Alain
Only after closing of some project. Is this assertion reproducable for you?
--
Valentin Kipiatkov
Chief Scientist, Vice President of Product Development
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"
"Alain Ravet" <alain.ravet.list@wanadoo.be> wrote in message
news:bscaeg$889$2@is.intellij.net...
>
closed).
>
>
>
>
Valentin Kipiatkov (JetBrains) wrote:
>Only after closing of some project. Is this assertion reproducable for you?
>
>
Yes, it happens all the time, in 1035.
, and I'm 100% positive : I'm just editing and browsing code. So, no
project closing/opening, no library stuff, etc.
The only non-trivial info is that it's happening in code called by
EditorFactoryAdapter.editorCreated () {..}
I'm not sure if they are related, but I get 2 kinds of stacktraces, when
opening a new editor in a project.
(stacktrace for build 1035)
ERROR 1:
-
This code
(d.java:36) at com.intellij.openapi.fileEditor.b.a.a.]]>(a.java:71)
at com.intellij.openapi.fileEditor.b.a.b.createEditor(b.java:28)
at com.intellij.openapi.fileEditor.b.f.b(f.java:250)
at com.intellij.openapi.fileEditor.b.f.access$900(f.java:616)
at com.intellij.openapi.fileEditor.b.f$3.run(f$3.java)
at com.intellij.openapi.command.impl.a.executeCommand(a.java:38)
at com.intellij.openapi.fileEditor.b.f.a(f.java:88)
at com.intellij.openapi.fileEditor.b.f.openFile(f.java:447)
at com.intellij.openapi.fileEditor.b.f$1.run(f$1.java:4)
at com.intellij.openapi.command.impl.a.executeCommand(a.java:38)
at com.intellij.openapi.fileEditor.b.f.openTextEditor(f.java:147)
at com.intellij.ide.actions.bn$0.run(bn$0.java:1)
at com.intellij.openapi.command.impl.a.executeCommand(a.java:71)
at com.intellij.ide.actions.bn.a(bn.java:0)
at com.intellij.ide.actions.bn.access$000(bn.java:13)
at com.intellij.ide.actions.bn$1.elementChosen(bn$1.java:1)
at
com.intellij.ide.util.gotoByName.GotoByNamePopup.close(GotoByNamePopup.java:34)
at
com.intellij.ide.util.gotoByName.GotoByNamePopup$10.actionPerformed(GotoByNamePopup$10.java)
at javax.swing.JTextField.fireActionPerformed(JTextField.java:491)
at javax.swing.JTextField.postActionEvent(JTextField.java:672)
at
javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:786)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1530)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2438)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2473)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2401)
at
com.intellij.ide.util.gotoByName.GotoByNamePopup$r_.processKeyEvent(GotoByNamePopup$r_.java:32)
at java.awt.Component.processEvent(Component.java:4909)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at
java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1713)
at
java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:627)
at
java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:831)
at
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:741)
at
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:592)
at java.awt.Component.dispatchEventImpl(Component.java:3506)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at com.intellij.ide.q.b(q.java:11)
at com.intellij.ide.q.a(q.java:39)
at com.intellij.ide.q.dispatchEvent(q.java:141)
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)
ERROR 2:
-
This code (the last line : "return..") , also called by editorCreated
produces
Error message: Assertion failed
java.lang.Throwable
at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:127)
at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:109)
at com.intellij.psi.impl.f.a.b.b(b.java:274)
at com.intellij.psi.impl.f.a.b.a(b.java:64)
at com.intellij.psi.impl.f.a.b.a(b.java:262)
at com.intellij.psi.impl.bg.findFile(bg.java:360)
at ravet.camouflagePlugin.helpers.util.U.fileIn(U.java:92)
at
ravet.camouflagePlugin.actions.onEditorOpen.AutomaticClassMultiFolder.javaFileIn(AutomaticClassMultiFolder.java:55)
at
ravet.camouflagePlugin.actions.onEditorOpen.AutomaticClassMultiFolder.editorCreated(AutomaticClassMultiFolder.java:35)
at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.intellij.util.EventDispatcher.a(EventDispatcher.java:18)
at com.intellij.util.EventDispatcher.a(EventDispatcher.java:41)
at com.intellij.util.EventDispatcher.access$100(EventDispatcher.java:44)
at com.intellij.util.EventDispatcher$1.invoke(EventDispatcher.java:6)
at $Proxy15.editorCreated(Unknown Source)
at com.intellij.openapi.editor.b.d.a(d.java:1)
at com.intellij.openapi.editor.b.d.createEditor(d.java:43)
at com.intellij.openapi.fileEditor.b.a.d.f(d.java:32)
at com.intellij.openapi.fileEditor.b.a.d.(d.java:36) at com.intellij.openapi.fileEditor.b.a.a.]]>(a.java:71)
at com.intellij.openapi.fileEditor.b.a.b.createEditor(b.java:28)
at com.intellij.openapi.fileEditor.b.f.b(f.java:250)
at com.intellij.openapi.fileEditor.b.f.access$900(f.java:616)
at com.intellij.openapi.fileEditor.b.f$3.run(f$3.java)
at com.intellij.openapi.command.impl.a.executeCommand(a.java:38)
at com.intellij.openapi.fileEditor.b.f.a(f.java:88)
at com.intellij.openapi.fileEditor.b.f.openFile(f.java:447)
at com.intellij.openapi.fileEditor.b.f$1.run(f$1.java:4)
at com.intellij.openapi.command.impl.a.executeCommand(a.java:38)
at com.intellij.openapi.fileEditor.b.f.openTextEditor(f.java:147)
at com.intellij.codeInsight.d.a.b.a(b.java:31)
at com.intellij.codeInsight.e.e$1.run(e$1.java:2)
at com.intellij.codeInsight.e.e$0.run(e$0.java:2)
at com.intellij.openapi.command.impl.a.executeCommand(a.java:71)
at com.intellij.codeInsight.e.e.a(e.java:8)
at com.intellij.codeInsight.e.e.actionPerformed(e.java:40)
at com.intellij.openapi.a.c.d.a(d.java:49)
at com.intellij.openapi.a.c.d.b(d.java:60)
at com.intellij.openapi.a.c.d.a(d.java:144)
at com.intellij.ide.q.a(q.java:69)
at com.intellij.ide.q.dispatchEvent(q.java:141)
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)
May I get a plugin (better with source code) which results in such
assertions?
--
Valentin Kipiatkov
Chief Scientist, Vice President of Product Development
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"
"Alain Ravet" <alain.ravet.list@wanadoo.be> wrote in message
news:bsnhvr$9te$1@is.intellij.net...
>
you?
>
>
>
>
>
>
>
>
>
ravet.camouflagePlugin.doIt.alls.visitors.BaseVisitor.doVisitChildren(BaseVi
sitor.java:35)
>
ravet.camouflagePlugin.doIt.alls.visitors.OptimBaseVisitors_$TypeCastExpress
ions.visitElement(OptimBaseVisitors_.java:40)
>
ravet.camouflagePlugin.doIt.alls.visitors.BaseVisitor.visitFile(BaseVisitor.
java:21)
>
ravet.camouflagePlugin.doIt.alls.visitors.OptimBaseVisitor.visitFile(OptimBa
seVisitor.java:18)
>
ravet.camouflagePlugin.doIt.alls.visitors.BaseVisitor.visitFile(BaseVisitor.
java:28)
>
ravet.camouflagePlugin.actions.onEditorOpen.AutomaticClassMultiFolder.proces
sTheFile(AutomaticClassMultiFolder.java:67)
>
ravet.camouflagePlugin.actions.onEditorOpen.AutomaticClassMultiFolder.editor
Created(AutomaticClassMultiFolder.java:39)
>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
com.intellij.util.EventDispatcher.access$100(EventDispatcher.java:44)
>
com.intellij.ide.util.gotoByName.GotoByNamePopup.close(GotoByNamePopup.java:
34)
>
com.intellij.ide.util.gotoByName.GotoByNamePopup$10.actionPerformed(GotoByNa
mePopup$10.java)
>
com.intellij.ide.util.gotoByName.GotoByNamePopup$r_.processKeyEvent(GotoByNa
mePopup$r_.java:32)
>
java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1713
)
>
java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusMa
nager.java:627)
>
java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocu
sManager.java:831)
>
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocu
sManager.java:741)
>
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManag
er.java:592)
>
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:201)
>
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:151)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
>
>
>
>
>
>
>
>
>
>
ravet.camouflagePlugin.actions.onEditorOpen.AutomaticClassMultiFolder.javaFi
leIn(AutomaticClassMultiFolder.java:55)
>
ravet.camouflagePlugin.actions.onEditorOpen.AutomaticClassMultiFolder.editor
Created(AutomaticClassMultiFolder.java:35)
>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
com.intellij.util.EventDispatcher.access$100(EventDispatcher.java:44)
>
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:201)
>
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:151)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
>
On Wed, 24 Dec 2003 14:13:21 -0100, Alain Ravet wrote:
Aha! This is the problem I'm getting now, with 1020....
On Fri, 02 Jan 2004 19:20:28 +0300, Valentin Kipiatkov (JetBrains) wrote:
Did anything come of this. This is looking like the problems I'm getting
in 1120/RC1....
On Sun, 25 Jan 2004 16:44:48 +1300, Mark Derricutt wrote:
>> May I get a plugin (better with source code) which results in such
>> assertions?
Aha! Solved it. I was called addBefore() from the wrong PsiElement
instance.
Valentin,
It would be great if you always add explainatory message with these asserts. This is especially important now that the PSI is fully opened. Up to now the response to these kind of questions has been rather spotty but understandable since it was an EAP. However once 4.0 officially ship with PSI, are we supposed to send a support request every times we have an assertion? Not very efficient for you and us...
From our end the picture is rather bleak: really sparse documentation, unexplainable assertions. It takes dedication to write a plugin for IDEA. I had a few co-workers that tried and gave up because they did not have the time.
Bottom line is you have to invest some time now in documenting your APIs. Adding new "API level" assertions (to catch plugin errors) or documenting the existing ones as you sometimes do will be a very good first step IMHO.
Jacques