StartupAbortedException blocks loading any, even non-IlluminatedCloud, projects

Issue #52 resolved
Jan Deschuttere created an issue

This is on a Mac 10.10.3, both IntelliJ IDEA Community 14 and IntelliJ IDEA 14.1.4

When trying to set up the project on the Community Edition I had some troubles having the System classes properly working, String f.i. was still not recognised. I tried an "invalidate caches and restart" attempt but after an hour I force quitted the application as the activity seemed to have stopped. Once I tried opening the application again the following issue was outputted:

Cannot load project: com.intellij.ide.plugins.PluginManager$StartupAbortedException:
com.intellij.diagnostic.PluginException: 
com/illuminatedcloud/intellij/structureview/ApexProjectTreeStructureProvider: Unsupported major.minor version 51.0 [Plugin: com.illuminatedcloud.intellij]

Knowing that I definitely made a mistake in that department I tried cleaning the known directories, removed the community edition and installed the IDEA 14.1.4 application. After installation of the plugin the same issue shows up and there's no way for me to use the applications while the plugin is enabled.

Checking the logs the following trace (a lot of the same actually) shows up:

com.intellij.diagnostic.PluginException: com/illuminatedcloud/intellij/formatter/ApexLanguageCodeStyleSettingsProvider : Unsupported major.minor version 51.0 [Plugin: com.illuminatedcloud.intellij]
    at com.intellij.ide.plugins.cl.PluginClassLoader.b(PluginClassLoader.java:130)
    at com.intellij.ide.plugins.cl.PluginClassLoader.a(PluginClassLoader.java:77)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:66)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:249)
    at com.intellij.openapi.extensions.impl.ExtensionComponentAdapter.loadImplementationClass(ExtensionComponentAdapter.java:156)
    at com.intellij.openapi.extensions.impl.ExtensionComponentAdapter.getComponentImplementation(ExtensionComponentAdapter.java:66)
    at com.intellij.openapi.extensions.impl.ExtensionComponentAdapter.getComponentInstance(ExtensionComponentAdapter.java:73)
    at com.intellij.openapi.extensions.impl.ExtensionComponentAdapter.getExtension(ExtensionComponentAdapter.java:119)
    at com.intellij.openapi.extensions.impl.ExtensionPointImpl.processAdapters(ExtensionPointImpl.java:249)
    at com.intellij.openapi.extensions.impl.ExtensionPointImpl.getExtensions(ExtensionPointImpl.java:194)
    at com.intellij.openapi.extensions.Extensions.getExtensions(Extensions.java:101)
    at com.intellij.openapi.extensions.Extensions.getExtensions(Extensions.java:87)
    at com.intellij.psi.codeStyle.CommonCodeStyleSettingsManager.initNonReadSettings(CommonCodeStyleSettingsManager.java:109)
    at com.intellij.psi.codeStyle.CommonCodeStyleSettingsManager.getCommonSettingsMap(CommonCodeStyleSettingsManager.java:81)
    at com.intellij.psi.codeStyle.CommonCodeStyleSettingsManager.getCommonSettings(CommonCodeStyleSettingsManager.java:62)
    at com.intellij.psi.codeStyle.CodeStyleSettings.getCommonSettings(CodeStyleSettings.java:902)
    at com.intellij.psi.codeStyle.CodeStyleSettings.getLanguageIndentOptions(CodeStyleSettings.java:674)
    at com.intellij.psi.codeStyle.CodeStyleSettings.getIndentOptions(CodeStyleSettings.java:582)
    at org.jetbrains.java.decompiler.IdeaDecompiler.<init>(IdeaDecompiler.java:96)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.picocontainer.defaults.InstantiatingComponentAdapter.newInstance(InstantiatingComponentAdapter.java:193)
    at org.picocontainer.defaults.ConstructorInjectionComponentAdapter$1.run(ConstructorInjectionComponentAdapter.java:220)
    at org.picocontainer.defaults.ThreadLocalCyclicDependencyGuard.observe(ThreadLocalCyclicDependencyGuard.java:53)
    at org.picocontainer.defaults.ConstructorInjectionComponentAdapter.getComponentInstance(ConstructorInjectionComponentAdapter.java:248)
    at com.intellij.util.pico.ConstructorInjectionComponentAdapter.getComponentInstance(ConstructorInjectionComponentAdapter.java:58)
    at com.intellij.openapi.extensions.impl.ExtensionComponentAdapter.getComponentInstance(ExtensionComponentAdapter.java:77)
    at com.intellij.openapi.extensions.impl.ExtensionComponentAdapter.getExtension(ExtensionComponentAdapter.java:119)
    at com.intellij.openapi.extensions.impl.ExtensionPointImpl.processAdapters(ExtensionPointImpl.java:249)
    at com.intellij.openapi.extensions.impl.ExtensionPointImpl.getExtensions(ExtensionPointImpl.java:194)
    at com.intellij.openapi.extensions.Extensions.getExtensions(Extensions.java:101)
    at com.intellij.openapi.extensions.Extensions.getExtensions(Extensions.java:87)
    at com.intellij.openapi.extensions.ExtensionPointName.getExtensions(ExtensionPointName.java:49)
    at com.intellij.psi.impl.compiled.ClassFileStubBuilder.getStubVersion(ClassFileStubBuilder.java:105)
    at com.intellij.psi.stubs.CumulativeStubVersion.getCumulativeVersion(CumulativeStubVersion.java:46)
    at com.intellij.psi.stubs.StubUpdatingIndex.getVersion(StubUpdatingIndex.java:206)
    at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:380)
    at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:283)
    at com.intellij.util.indexing.FileBasedIndexImpl.initComponent(FileBasedIndexImpl.java:360)
    at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentConfigComponentAdapter$1.getComponentInstance(ComponentManagerImpl.java:568)
    at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentConfigComponentAdapter.getComponentInstance(ComponentManagerImpl.java:610)
    at com.intellij.util.pico.DefaultPicoContainer.getLocalInstance(DefaultPicoContainer.java:245)
    at com.intellij.util.pico.DefaultPicoContainer.getComponentInstance(DefaultPicoContainer.java:211)
    at com.intellij.openapi.components.impl.ComponentManagerImpl.createComponent(ComponentManagerImpl.java:125)
    at com.intellij.openapi.application.impl.ApplicationImpl.createComponent(ApplicationImpl.java:354)
    at com.intellij.openapi.components.impl.ComponentManagerImpl.a(ComponentManagerImpl.java:116)
    at com.intellij.openapi.components.impl.ComponentManagerImpl.init(ComponentManagerImpl.java:87)
    at com.intellij.openapi.components.impl.stores.ApplicationStoreImpl.load(ApplicationStoreImpl.java:101)
    at com.intellij.openapi.application.impl.ApplicationImpl.load(ApplicationImpl.java:499)
    at com.intellij.openapi.application.impl.ApplicationImpl.load(ApplicationImpl.java:481)
    at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:170)
    at com.intellij.idea.MainImpl$1$1$1.run(MainImpl.java:62)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:715)
    at java.awt.EventQueue.access$400(EventQueue.java:82)
    at java.awt.EventQueue$2.run(EventQueue.java:676)
    at java.awt.EventQueue$2.run(EventQueue.java:674)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:685)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:362)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.UnsupportedClassVersionError: com/illuminatedcloud/intellij/formatter/ApexLanguageCodeStyleSettingsProvider : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:471)
    at com.intellij.util.lang.UrlClassLoader._defineClass(UrlClassLoader.java:259)
    at com.intellij.util.lang.UrlClassLoader.defineClass(UrlClassLoader.java:255)
    at com.intellij.util.lang.UrlClassLoader._findClass(UrlClassLoader.java:231)
    at com.intellij.ide.plugins.cl.PluginClassLoader.b(PluginClassLoader.java:124)
    ... 70 more

Nothing seems to work to overcome this pesky situation, I'm open for suggestions or patches.

Cheers

Comments (4)

  1. Scott Wells repo owner

    Thanks, Jan. You need to be running IDEA in Java 7 or higher. I compile the plugin using Java 7 and therefore IDEA running in Java 6 can't load it. That's the meaning of the error "Unsupported major.minor version 51.0 [Plugin: com.illuminatedcloud.intellij]". The default JDK on Mac just happens to be Java 6, though!

    Make sure you have JDK 7/8 installed and then you can use these instructions to make sure that IDEA us configured to use that version:

    https://intellij-support.jetbrains.com/hc/en-us/articles/206827547-Selecting-the-JDK-version-the-IDE-will-run-under

    Let me know if that doesn't resolve the issue for you!

  2. Jan Deschuttere reporter

    Thanks Scott for your quick response on this, wasn't checking that possibility as it worked on the first startup. Changing the versions solved this issue.

  3. Scott Wells repo owner

    Great! Yeah, I wish there were some easy way for my plugin to trap this error so I could give a more useful error message, but unfortunately it's a bootstrapping thing. The alternative would be to build my plugin with the older JDK, but that has its downsides as well. Hope you enjoy the plugin!

  4. Log in to comment