JetBrains/idea-gitignore

NoClassDefFoundError, Version 3.2.0 on IntelliJ 2019.2

ctharings opened this issue ยท 16 comments

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

Caused by: java.lang.ClassNotFoundException: org.zmlx.hg4idea.ignore.lang.HgIgnoreFileType

Is hg4idea plugin enabled? As a workaround, enable it.

Same error happens to me after opening build.gradle file.

IDE:

IntelliJ IDEA 2019.2 (Community Edition)
Build #IC-192.5728.98, built on July 23, 2019
Runtime version: 11.0.3+12-b304.10 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.15.0-55-generic
GC: ParNew, ConcurrentMarkSweep
Memory: 1960M
Cores: 4
Registry: debugger.watches.in.variables=false, git.explicit.commit.renames.prohibit.multiple.calls=false
Non-Bundled Plugins: Camelry, Lombook Plugin, com.jetbrains.plugins.ini4idea, hu.rb.cs.generator, mobi.hsz.idea.gitignore, Osmorc, com.hotswap.agent.plugin, Docker

Plugin version

3.2.0.192

EDIT:
Correction, happens seemingly random when working in editor.

I don't even know what the hg4idea plugin is. If I search for it, the only thing that comes up is "Bitbucket Linky". I'm assuming this is not the one that needs to be enabled to work around this bug?

I don't even know what the hg4idea plugin is. If I search for it, the only thing that comes up is "Bitbucket Linky". I'm assuming this is not the one that needs to be enabled to work around this bug?

It should be the mercurial plugin

I'd rather not install plugins I have no use for, to be honest. Is there any plan to fix this, or will the Mercurial plugin be added as a dependency or something?

Edit: no such thing as "Mercurial" plugin
image

Edit2: Ah, found it, it's one of the bundled plugins I disabled.

I'd rather not install plugins I have no use for, to be honest. Is there any plan to fix this, or will the Mercurial plugin be added as a dependency or something?

Because it might be a mistake made by the devs and it's now fixed, this is why the issue is closed. Just wait for a few days for an update and you can redisable the hg4idea plugin ๐Ÿ˜‰

nvx commented

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

Updated to latest, got the error. If it were fixed, I shouldn't have seen the issue I'd say ๐Ÿค”

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@411480eb
	at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:75)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
	... 99 more

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

As this is a closed issue, I would be under the assumption this has been fixed. Am I off base, or is that intended? Sorry for the repeat question, Just wanted to get a little more information

Closing the issue merely indicates that a fix has been committed to the repo, not that the fix has been released. Are you even software developers? They will push a new release when they are ready. In the meantime we have two very simple workarounds. Use your heads!

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 commented

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

@hsz Does that mean for 2019.3 git only users, we can disable the .ignore and the hg4idea plugins, โ†’?

We need to remove now this plugin, because the new IDE has a buildin feature?

hsz commented

@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!