Skip to content

Get ide to work with Java 11 / Eclipse 4.17 #129

Closed
@nedtwigg

Description

@nedtwigg

Eclipse 4.17 requires Java 11+ to run. If you try to run it with Java 8, there are no explicit warnings about using the wrong version, and eclipse will start successfully. However, you won't actually be able to use it, it's functionally broken.

If you start ide with Java 11, the task fails like so:

> Task :ide:ideSetupP2
!SESSION 2020-09-17 10:04:12.926 -----------------------------------------------
eclipse.buildId=unknown
java.version=11.0.8
java.vendor=AdoptOpenJDK
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
Framework arguments:  -application org.eclipse.equinox.p2.director -repository https://download.eclipse.org/eclipse/updates/4.17/R-4.17-202009021800/,https://download.eclipse.org/wildwebdeveloper/releases/0.9.1/ -artifactRepository file:///Users/ntwigg/.goomph/shared-bundles -installIU org.eclipse.platform.ide,org.eclipse.jdt.feature.group,org.eclipse.ui.views.log,org.eclipse.wildwebdeveloper.feature.feature.group -profile OomphIde -destination file:///Users/ntwigg/Documents/dev/mytakedotorg/ide/build/oomph-ide.app -bundlepool /Users/ntwigg/.goomph/shared-bundles -p2.os macosx -p2.ws cocoa -p2.arch x86_64
Command-line arguments:  -application org.eclipse.equinox.p2.director -clean -consolelog -repository https://download.eclipse.org/eclipse/updates/4.17/R-4.17-202009021800/,https://download.eclipse.org/wildwebdeveloper/releases/0.9.1/ -artifactRepository file:///Users/ntwigg/.goomph/shared-bundles -installIU org.eclipse.platform.ide,org.eclipse.jdt.feature.group,org.eclipse.ui.views.log,org.eclipse.wildwebdeveloper.feature.feature.group -profile OomphIde -destination file:///Users/ntwigg/Documents/dev/mytakedotorg/ide/build/oomph-ide.app -bundlepool /Users/ntwigg/.goomph/shared-bundles -p2.os macosx -p2.ws cocoa -p2.arch x86_64

!ENTRY org.eclipse.osgi 4 0 2020-09-17 10:04:12.949
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Cannot support framework extension bundles without a public addURL(URL) method on the framework class loader: org.eclipse.osgi.compatibility.state_1.1.0.v20170516-1513 [36]
        at org.eclipse.osgi.storage.FrameworkExtensionInstaller.addExtensionContent0(FrameworkExtensionInstaller.java:104)
        at org.eclipse.osgi.storage.FrameworkExtensionInstaller.addExtensionContent(FrameworkExtensionInstaller.java:79)
        at org.eclipse.osgi.internal.loader.SystemBundleLoader$SystemModuleClassLoader.loadFragments(SystemBundleLoader.java:129)
        at org.eclipse.osgi.internal.loader.SystemBundleLoader.loadClassLoaderFragments(SystemBundleLoader.java:111)
        at org.eclipse.osgi.internal.loader.BundleLoader.loadFragments(BundleLoader.java:282)
        at org.eclipse.osgi.container.ModuleWiring.loadFragments(ModuleWiring.java:273)
        at org.eclipse.osgi.container.ModuleContainer.applyDelta(ModuleContainer.java:710)
        at org.eclipse.osgi.container.ModuleContainer.resolveAndApply(ModuleContainer.java:511)
        at org.eclipse.osgi.container.ModuleContainer.resolve(ModuleContainer.java:457)
        at org.eclipse.osgi.container.ModuleContainer.refresh(ModuleContainer.java:1001)
        at org.eclipse.osgi.container.ModuleContainer$ContainerWiring.dispatchEvent(ModuleContainer.java:1382)
        at org.eclipse.osgi.container.ModuleContainer$ContainerWiring.dispatchEvent(ModuleContainer.java:1)
        at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY org.eclipse.core.net 1 0 2020-09-17 10:04:13.413
!MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.eclipse.ecf.provider.filetransfer.httpclient4.SNIAwareHttpClient$1 (file:/Users/ntwigg/.goomph/p2-bootstrap/4.7.2/plugins/org.eclipse.ecf.provider.filetransfer.httpclient4_1.1.200.v20170314-0133.jar) to method sun.security.ssl.SSLSocketImpl.setHost(java.lang.String)
WARNING: Please consider reporting this to the maintainers of org.eclipse.ecf.provider.filetransfer.httpclient4.SNIAwareHttpClient$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Installing org.eclipse.platform.ide 4.17.0.I20200902-1800.
Installing org.eclipse.jdt.feature.group 3.18.500.v20200902-1800.
Installing org.eclipse.ui.views.log 1.2.1200.v20200828-0938.
Installing org.eclipse.wildwebdeveloper.feature.feature.group 0.9.1.202005041657.
An error occurred while installing the items
Installation failed.
 session context was:(profile=OomphIde, phase=org.eclipse.equinox.internal.p2.engine.phases.Install, operand=null --> [R]com.google.gson 2.8.2.v20180104-1110, action=org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction).
 Could not acquire the framework manipulator service.
Caused by: Application failed, log file location: /Users/ntwigg/.goomph/p2-bootstrap/4.7.2/configuration/1600362252277.log

!ENTRY org.eclipse.equinox.p2.engine 4 4 2020-09-17 10:04:23.625
!MESSAGE An error occurred while installing the items
!SUBENTRY 1 org.eclipse.equinox.p2.engine 4 0 2020-09-17 10:04:23.626
!MESSAGE session context was:(profile=OomphIde, phase=org.eclipse.equinox.internal.p2.engine.phases.Install, operand=null --> [R]com.google.gson 2.8.2.v20180104-1110, action=org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction).
!SUBENTRY 1 org.eclipse.equinox.p2.engine 4 0 2020-09-17 10:04:23.626
!MESSAGE Could not acquire the framework manipulator service.
!STACK 0
java.lang.IllegalStateException: Could not acquire the framework manipulator service.
        at org.eclipse.equinox.internal.p2.touchpoint.eclipse.LazyManipulator.loadDelegate(LazyManipulator.java:45)
        at org.eclipse.equinox.internal.p2.touchpoint.eclipse.LazyManipulator.getConfigData(LazyManipulator.java:108)
        at org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction.installBundle(InstallBundleAction.java:75)
        at org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction.execute(InstallBundleAction.java:32)
        at org.eclipse.equinox.internal.p2.engine.ParameterizedProvisioningAction.execute(ParameterizedProvisioningAction.java:39)
        at org.eclipse.equinox.internal.p2.engine.Phase.mainPerform(Phase.java:184)
        at org.eclipse.equinox.internal.p2.engine.Phase.perform(Phase.java:96)
        at org.eclipse.equinox.internal.p2.engine.PhaseSet.perform(PhaseSet.java:47)
        at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:77)
        at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:45)
        at org.eclipse.equinox.internal.provisional.p2.director.PlanExecutionHelper.executePlan(PlanExecutionHelper.java:42)
        at org.eclipse.equinox.internal.provisional.p2.director.PlanExecutionHelper.executePlan(PlanExecutionHelper.java:24)
        at org.eclipse.equinox.internal.p2.director.app.DirectorApplication.executePlan(DirectorApplication.java:813)
        at org.eclipse.equinox.internal.p2.director.app.DirectorApplication.planAndExecute(DirectorApplication.java:806)
        at org.eclipse.equinox.internal.p2.director.app.DirectorApplication.performProvisioningActions(DirectorApplication.java:793)
        at org.eclipse.equinox.internal.p2.director.app.DirectorApplication.run(DirectorApplication.java:1111)
        at org.eclipse.equinox.internal.p2.director.app.DirectorApplication.start(DirectorApplication.java:1293)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
        at com.diffplug.gradle.eclipserunner.EquinoxLauncher$Running.run(EquinoxLauncher.java:190)
        at com.diffplug.gradle.eclipserunner.EquinoxLauncher$Running.access$100(EquinoxLauncher.java:172)
        at com.diffplug.gradle.eclipserunner.EquinoxLauncher.run(EquinoxLauncher.java:163)
        at com.diffplug.gradle.eclipserunner.JarFolderRunner.run(JarFolderRunner.java:37)
        at com.diffplug.gradle.eclipserunner.JarFolderRunnerExternalJvm$RunOutside.run(JarFolderRunnerExternalJvm.java:126)
        at com.diffplug.gradle.JavaExecable.main(JavaExecable.java:134)

It's really important for Goomph to support the latest version of eclipse. Goomph still works with 4.17 with the mavenCentral plugin, but the ide plugin needs to work too. It would be nice for Goomph to stay compatible with Java 8, but if we have to bump our minimum required Java to 11, I'm okay with that.

Fixing this is important, but I don't expect to have time to look at this further until early 2021. PRs are welcome!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions