Some users of my plugin get java.lang.NoSuchMethodError: com.intellij.lang.parser.GeneratedParserUtilBase.enter_section_

Answered

I have a few bugs (https://github.com/KronicDeth/intellij-elixir/issues/402 and https://github.com/KronicDeth/intellij-elixir/issues/391) where users are getting `java.lang.NoSuchMethodError: com.intellij.lang.parser.GeneratedParserUtilBase.enter_section_`.  I am unable to reproduce using IntelliJ.  I build the plugin with IntelliJ CE 14.1 and am trying to support all versions after that point.  I use IntelliJ 2016.2 myself with the plugin.  Are there versions of Rubymine or other single-language IDEs that would not have `com.intellij.lang.parser.GeneratedParserUtilBase.enter_section_` that I should be testing against?

I haven't converted to the gradle plugin builder yet (it has a bug with using the wrong Java version for JSP), so I'm using Build Artifacts with these META-INF files https://github.com/KronicDeth/intellij-elixir/tree/703a150a7a897693c1c7dcacdcf2f7078b475de4/src/META-INF

4 comments
Comment actions Permalink

I'd assume there must have been an incompatible change in GeneratedParserUtilBase. You could try providing custom one using the version from GrammarKit plugin (same version you're generating with).

0
Comment actions Permalink

I see from the git history (https://github.com/JetBrains/intellij-community/commits/master/platform/lang-impl/src/com/intellij/lang/parser/GeneratedParserUtilBase.java) that the com.intellij.lang.parser.GeneratedParserUtilBase is periodically synced to intellij-community, so my use case of using the lastest GrammarKit with IntelliJ 14.1 shouldn't necessarily work as you said.  Should I change the import so it uses the version from GrammarKit, org.intellij.grammar.parser.GeneratedParserUtilBase (how do I include it then) or do I need to copy that file into my plugin's namespace, org.elixir_lang, so that my plugins version of GeneratedParserUtiBase won't conflict when the user has GrammarKit installed as a plugin?

0
Comment actions Permalink

Yep, that's the solution I had in mind.

 

0

Please sign in to leave a comment.