Resolution problems after upgrading from 2017.2 to 2017.3.1

Our custom plugin (Gosu) has started having symbol resolution issues since we upgraded from 2017.2 to 2017.3

It seems to mostly involve resolution across .jar files

Has anyone else seen this, and/or can you tell me what has changed that is likely to have triggered this issue?


I, personally have seen that plugins built with the IDEA 2017.3 SDK will throw ClassNotFoundExceptions when run on versions of IDEA 2017.2 and earlier.  This is due to some new classes being required (by the custom classloader, I think) that are not available in 2017.2.

Is this what you mean by having symbol resolution issues, or do you mean that your plugin's .resolve() functions are failing?  If that's the case, check your logs to see if you are throwing new exceptions that you haven't seen before.



What I mean is that the behavior of .resolve() has changed. For example, in one place it seems to be ignoring an explicit "import" statement and instead resolving to a (same-named) symbol in a local package. 

We are starting to suspect that changes were made in 2017.3 to accommodate the module system in Java 9. I guess maybe we need to know how to revert the behavior when Java 9 is not being used.



You can try to build the plugin with 2017.2 and see if it works correctly in 2017.3.  That will at least isolate the problem some.  And I still suggest looking for new/unexpected exceptions being logged.


Figured it out. Our plugin wants to resolve symbols in Java files as well as our own sources, and we were erroneously returning "LanguageLevel.HIGHEST" as our language level. Changing it to JDK_1_8 restored the behavior we were accustomed to.



Please sign in to leave a comment.