I have run into a couple different issues recently.
If the Lua plugin and JS plugin are both loaded I get an exception stack where the JS plugin is trying to load a class using the Lua plugin's classloader. This doesn't seem to happen in IDEA though - that might be a clue.
I opened a ticket, but I'm not sure it will get much attention since JS works without Lua running.
Next, I was trying to use Java serialization from my plugin during Stub deserialization,
In my PsiElement's constructor that takes a StubElement I was trying to deserialize a byte array which contained a serlialized java class. I couldn't deserialize it (NoClassDefFound exception). It seemed like this was occuring on a non-plugin classloader.
Is there a way to ensure that I am using the plugin classloader?