NoClassDefFoundError thrown by a plugin, but jar included in JSDK

I use Lombok library and Lombok IntelliJ Plugin on daily basis, but it fails to work in latest 12.1.4 (and 13.x too). There is a bug submitted to original plugin maintainer here: https://code.google.com/p/lombok-intellij-plugin/issues/detail?id=62, but he's gone for 2 months for now. I've tried to fix it on myslef, but I need your help.

Plugin itself compiles fine, without errors. There is no lombok.jar attached to plugin package. Lombok jar is supposed to be in your project's JDK libraries (you need to add jar manually to Java SDK). This jar should be picked up by external build and annotation processing. But there is NoClassDefFoundError thrown from inside a plugin- it cannot find lombok libraries during compilation.

I'd appreciate if you can help me with this questions so I can move forward on fixing this:

1. During work with Lombok plugin, lombok.jar is included on my JDK, so I assume it should be available to it, right?
2. Was there any recent change on plugin's classpaths? (plugin works fine in 129.549)
3. How to debug this situation in plugin development workspace? How to check and search classloaders (and which one?) instead of just loading a class to get NoClassDefFoundError?

Situation is reproducable on newset 12.1.4 and any JDK 7.x and 6.x. It worked on 129.549 so it's a narrow timespan.

I attach a simple project. It compiles fine outside IntelliJ IDEA, but it fails if you try to "Run All Tests" on test folder. Steps to reproduce:
1. create a new JDK and add lombok.jar to jars,
2. install lombok plugin
3. open sample project
4. enable external build annotation processing (found on classpath) on settings
5. run All Tests on tests folder

Thank you all in advance!

Regards,
Tomasz Kalkosiński



Attachment(s):
lombok-workshop.zip

Please sign in to leave a comment.