Solvedidea gitignore NoClassDefFoundError, Version 3.2.0 on IntelliJ 2019.2

Prerequisites

  • Plugin is in the latest version
  • Issue was not reported yet
  • Stack trace (if provided) contains mobi.hsz.idea.gitignore package name

Description

java.lang.NoClassDefFoundError: org/zmlx/hg4idea/ignore/lang/HgIgnoreFileType
	at mobi.hsz.idea.gitignore.outer.OuterIgnoreLoaderComponent$IgnoreEditorManagerListener.determineIgnoreLanguage(OuterIgnoreLoaderComponent.java:186)
	at mobi.hsz.idea.gitignore.outer.OuterIgnoreLoaderComponent$IgnoreEditorManagerListener.fileOpened(OuterIgnoreLoaderComponent.java:134)
	at jdk.internal.reflect.GeneratedMethodAccessor93.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:102)
	at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:446)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:406)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:395)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:379)
	at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:372)
	at com.intellij.util.messages.impl.MessageBusImpl.lambda$createTopicHandler$1(MessageBusImpl.java:242)
	at com.sun.proxy.$Proxy96.fileOpened(Unknown Source)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openFileImpl4Edt$8(FileEditorManagerImpl.java:979)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$5$1.run(FileEditorManagerImpl.java:1051)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$doWhenFocusSettlesDown$3(FocusManagerImpl.java:170)
	at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2425)
	at com.intellij.ide.IdeEventQueue.ifFocusEventsInTheQueue(IdeEventQueue.java:217)
	at com.intellij.ide.IdeEventQueue.executeWhenAllFocusEventsLeftTheQueue(IdeEventQueue.java:169)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:161)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:167)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$null$2(FocusManagerImpl.java:175)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:312)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:433)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:416)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:399)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:873)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:822)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:461)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:704)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:460)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.ClassNotFoundException: org.zmlx.hg4idea.ignore.lang.HgIgnoreFileType PluginClassLoader[mobi.hsz.idea.gitignore, 3.2.0.192] com.intellij.ide.plugins.cl.PluginClassLoader@1b747aac
	at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:75)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
	... 44 more

Steps to Reproduce

  1. Open TypeScript file.
  2. That's it.

Reproduces how often:

Everytime.

Versions

Plugin:

3.2.0

IDE:

IntelliJ IDEA 2019.2 (Ultimate Edition)
Build #IU-192.5728.98, built on July 22, 2019
Runtime version: 11.0.3+12-b304.10 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Non-Bundled Plugins: String Manipulation, YAML/Ansible support, com.dubreuia, com.intellij.apacheConfig, com.jetbrains.plugins.ini4idea, com.intellij.plugins.watcher, com.oliverlockwood.plugins.jenkinsfile, mobi.hsz.idea.gitignore, nl.jworks.intellij.bootstrap3, org.intellij.plugins.postcss, BashSupport, ImportCost, Karma, com.dmarcotte.handlebars, com.intellij.plugins.html.instantEditing, com.intellij.plugins.webcomponents, com.jetbrains.plugins.yeoman, intellij.prettierJS, jballant.CommonJSAutoComplete, org.jetbrains.plugins.vue, com.emberjs, ru.adelf.idea.dotenv, training, wallaby.js

OS:

macOS Mojave 10.4.6
17 Answers

✔️Accepted Answer

hsz
126

Ok, let me clarify the whole situation here, because we run into some chaos here.

.ignore plugin was supposed to not support IDE in version 2019.2+ (IntelliJ, PhpStorm, Android Studio and so on) because of the native support for the .gitignore files in the IDE.

In addition, this repository was transferred from my @hsz account to @JetBrains.

After that, there was a decision to release v3.2.0 with some changes - .gitignore and .hgignore files will be supported by the native code. Everything else stays as was before (except PayPal donation balloon and references in IDE/README). 🙂

Unfortunately, the last update contains a commit (a47a934), there was a reference to the class from Mercurial plugin: org.zmlx.hg4idea.ignore.lang.HgIgnoreFileType.
If the Mercurial plugin is disabled in your IDE - class is not available, and we run into NoClassDefFoundError exception.
So a workaround for the v3.2.0 issue is already mentioned: enabling of the Mercurial plugin.

Anyway - there is a fix for this problem already commited (aca47b9) by @dmitry-zhuravlev
Commit contains fix keyword, so this is the reason, current thread was closed automatically.

To be honest, I do not know, why the v3.2.0 was not taken down and new version with the fix was released - maybe there is a reason for that? Since it was done by the JB employees, I'll put on hold any of my actions.

I hope that the whole situation will straighten up quickly. Stay tuned! ❤️
BTW, I'll still be responsible for the bugfixing and support of the .ignore plugin in older IDE versions.

Thanks!
hsz - Jakub Chrzanowski

Other Answers:

Considering various repos handle that in different ways, there's not really any way for us to know without asking. There's no need to be that hostile when a simple question is asked that has no clear answer at that point. Are you a software developer? I'm sure you'd understand that asking questions is critical if you're unsure of something. :)

hsz
48

@ice1000 @MartinX3

IDE will provide some built-in support for .gitignore/.hgignore but the .ignore plugin should still be available as far as I know with non conflicting features.

Refs:
https://blog.jetbrains.com/idea/2019/07/support-for-vcs-ignores-in-intellij-idea-and-intellij-based-ides
https://blog.jetbrains.com/blog/2019/07/23/an-interview-with-jakub-chrzanowski-ignore-plugin-author/

The new version (3.2.1.192) with the fix was released. Thanks to all for the patience!

nvx
19

Is there a reason this is closed? What version fixes this issue as I've run into it just now.

More Issues: