IntelliJ IDEA/Webstorm/etc. 2019.2 Java 11 Support

Issue #1362 resolved
Justin Julicher created an issue

Automatically upgraded to Webstorm 2019.2 and got the following errors in log:

2019-07-23 15:50:50,529 [ 177834]  ERROR - intellij.openapi.progress.Task - WebStorm 2019.2  Build #WS-192.5728.87 
2019-07-23 15:50:50,529 [ 177834]  ERROR - intellij.openapi.progress.Task - JDK: 11.0.3; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o 
2019-07-23 15:50:50,529 [ 177834]  ERROR - intellij.openapi.progress.Task - OS: Linux 
2019-07-23 15:50:50,529 [ 177834]  ERROR - intellij.openapi.progress.Task - Plugin to blame: Illuminated Cloud 2 version: 2.0.7.0 
2019-07-23 15:50:52,847 [ 180152]  ERROR - intellij.openapi.progress.Task - javax/xml/ws/Service 
java.lang.NoClassDefFoundError: javax/xml/ws/Service
    at com.illuminatedcloud.intellij.settings.application.IlluminatedCloudConnectionConfig.getClient(SourceFile:1090)
    at com.illuminatedcloud.intellij.builder.ForceComBuilder.getClient(SourceFile:977)
    at com.illuminatedcloud.intellij.builder.ForceComBuilder.runWithClient(SourceFile:789)
    at com.illuminatedcloud.intellij.builder.ForceComBuilder.getDescribeMetadataResult(SourceFile:1014)
    at com.illuminatedcloud.intellij.builder.ForceComBuilder.getMetadataDescribesByDirectoryName(SourceFile:1037)
    at com.illuminatedcloud.intellij.builder.ForceComBuilder.getMetadataDescribeIndex(SourceFile:1068)
    at com.illuminatedcloud.intellij.builder.BuildOptionsDialog$2.run(SourceFile:830)
    at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:894)
    at com.intellij.openapi.progress.impl.CoreProgressManager$5.run(CoreProgressManager.java:447)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:169)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:591)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:537)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:59)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:156)
    at com.intellij.openapi.application.impl.ApplicationImpl.lambda$null$9(ApplicationImpl.java:552)
    at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:294)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.ClassNotFoundException: javax.xml.ws.Service PluginClassLoader[com.illuminatedcloud2.intellij, 2.0.7.0] com.intellij.ide.plugins.cl.PluginClassLoader@5cdb4ef5
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:75)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 21 more

I’m reverting to the JDK 8 using JDK Bin Downloader plugin but would be better if we had support for JDK 11.

thanks

Official response

  • Scott Wells repo owner

    Okay, 2.0.7.3 has been posted that should address all known issues except for the one that Xander reported. I'll investigate that one this morning and see what's going on, but this should allow IC2 to work with a Java 11 JRE and address other plugin SDK changes. If you installed the release candidate build posted late yesterday, you're already on this build. Thanks for all the feedback and help verifying the changes!

Comments (35)

  1. Matej Mercina

    A colleague of mine just ran into this issue as well. Interestingly enough, so far everyone else that updated hasn’t had this problem yet. Could really use a fix for this as soon as possible, or exact steps for a workaround.

  2. Siddharth Mathur

    I am not sure if the root cause is the same, I am getting following error when saving file … Error while loading class com.sforce.soap.partner.PartnerService: javax/xml/ws/Service [Plugin: com.illumicatedcloud2.intellij]

    Also Iluminated cloud is failing with the exact same error when generating offline sybmol table.

    This started happening after updating to Webstrom 2019.2

    Need a fix for this urgently.

    Thanks.

  3. Scott Wells repo owner

    Take a look at #1359. As Justin points out, this is because Java 11 no longer bundles JAX-WS. I do have a local test build that bundles these with IC, but that will require more testing before release. The solution in the interim is to switch to a Java 8 JRE to host the IDE.

  4. Justin Julicher reporter

    Hi @scott wells

    Unfortunately there’s a deprecated IntelliJ API? So the only way to resolve this is to roll back to Webstorm 2019.1

    e.g.

    java.lang.NoSuchMethodError: com.intellij.psi.impl.source.tree.injected.ConcatenationInjectorManager$BaseConcatenation2InjectorAdapter.<init>(Lcom/intellij/psi/impl/source/tree/injected/ConcatenationInjectorManager;)V
        at com.illuminatedcloud.intellij.inject.ApexConcatenationToInjectorAdapter.<init>(SourceFile:25)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    
  5. Scott Wells repo owner

    Justin, evidently they fixed an issue that I logged against them. Ah, the fun of chasing a moving target...I'll issue an update tomorrow that takes care of this. Thanks for bringing it to my attention.

  6. Scott Wells repo owner

    I've just posted 2.0.7.1 which addresses this in part. It resolves the issue that Justin saw, though I do still see some new stack traces in idea.log that look like:

    2019-07-24 10:11:00,923 [  35379]  ERROR - tellij.psi.PsiReferenceService - IdeaLoggingEvent[message=Reference element is not the same element for which references were queried, throwable=java.lang.RuntimeException: Element: com.intellij.psi.impl.source.xml.XmlTokenImpl; reference: com.illuminatedcloud.intellij.psi.reference.ApexDeclarationReference; reference element: com.intellij.psi.impl.source.xml.XmlTextImpl
    

    I'll investigate that further for a near-term update, but whatever it is, it's not a new issue; the base IDE is just reporting it now where it wasn't previously.

    The IDE also provides better messaging when using a Java 11 JRE, specifically instructing the user to use the JB SDK Bintray Downloader to install a Java 8 JRE.

    I'll try to get the change that allows use of a Java 11 JRE out soon as well. That change requires extensive testing, though, and I don't want to rush it.

  7. Scott Wells repo owner

    I see that there are some watchers on this issue. If anything is interested in helping to test the update that allows a Java 11 JRE, I'm happy to post a build here. It will be the same as the current official build but with support for Java 11. I would like to see testers try the build on both a Java 8 JRE and Java 11 JRE to help suss out any issues on both host JREs.

    Let me know if you're interested and I'll post a build and instructions on how to install it and help verify it. Thanks in advance for any assistance you might provide!

  8. Scott Wells repo owner

    Here's a test build based on 2.0.7.1 that supports both Java 8 and Java 11 by bundling JAX-WS. I've been testing it successfully under both Java versions, but I'd certainly appreciate a little assistance from users who don't mind moving onto a pre-release build.

    To install this build, download IlluminatedCloud2.zip--do not extract it--and use Settings/Preferences>Plugins>Install plugin from disk (under the gear drop-down). Restart the IDE and you'll be using this build.

    If you have moved back to a Java 8 JRE, you can feel free to move back onto a Java 11 JRE using these instructions:

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

    However, I would very much appreciate it if you'd try using it with a mixture of both Java 8 and Java 11.

    Please let me know if you are in fact on this build so I know that there's some additional burn-in occurring.

    If you find any issues with the build--specifically issues with IC communicating with the Salesforce organization--please provide the details here for my review.

    And you can always move back to the official build by uninstalling the plugin and reinstalling it from the JetBrains plugin repository.

    Thanks much in advance!

  9. Scott Wells repo owner

    NEW BUILD POSTED

    Here's a test build based on 2.0.7.2 that supports both Java 8 and Java 11 by bundling JAX-WS. I've been testing it successfully under both Java versions, but I'd certainly appreciate a little assistance from users who don't mind moving onto a pre-release build.

    To install this build, download IlluminatedCloud2.zip--do not extract it--and use Settings/Preferences>Plugins>Install plugin from disk (under the gear drop-down). Restart the IDE and you'll be using this build.

    If you have moved back to a Java 8 JRE, you can feel free to move back onto a Java 11 JRE using these instructions:

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

    However, I would very much appreciate it if you'd try using it with a mixture of both Java 8 and Java 11.

    Please let me know if you are in fact on this build so I know that there's some additional burn-in occurring.

    If you find any issues with the build--specifically issues with IC communicating with the Salesforce organization--please provide the details here for my review.

    And you can always move back to the official build by uninstalling the plugin and reinstalling it from the JetBrains plugin repository.

    Thanks much in advance!

  10. Scott Wells repo owner

    I've just posted a new official build, 2.0.7.2, which addresses a few other issues that I found while testing on 2019.2 today. The official build still doesn't support Java 11, but the most recent pre-release build posted here (see the official response) is 2.0.7.2 with Java 11 support.

  11. René Görgens

    Hi @Scott Wells ,

    With IC2 2.0.7.2 as installed normally in 2019.2 on Windows 8, the “Test” button on the Connections page didn’t work at all (no test run, hence unable to save the Connection).

    With the prerelease you posted above, IlluminatedCloud2.zip/ NEW BUILD POSTED), installed via ZIP, it works fine. Just wanted to let you know.

    KR René

  12. Scott Wells repo owner

    Thanks for the feedback, @René Görgens. I'm also finding that build to resolve the issue on Java 11 without any negative side-effects so far. I'm hoping to promote it to the official build soon. I'd certainly appreciate additional feedback from anyone else trying it before doing so if possible.

  13. Jeff May

    I installed the pre-release and am testing against Java 11 – so far so good, but will post problems (or lack of) here

  14. Scott Wells repo owner

    Thanks, Jeff. I'm also using it as my daily driver, but against Java 8. If all goes well I'll plan to promote the build with bundled JAX-WS to official tomorrow morning and put this whole Java 11 compatibility thing to rest.

  15. Jeff May

    I have been using the pre-release with Java 11 all day, trying to make sure I did one of everything I usually do. No problems found so far.

  16. Scott Wells repo owner

    Thanks, Jeff. Same here. I'm putting together the official update which also includes fixes for a few other things I've found while testing and plan to post it in a few hours.

  17. Scott Wells repo owner

    RELEASE CANDIDATE BUILD POSTED 2019-07-27

    This is the build I plan to release tomorrow morning, 2.0.7.3, that supports both Java 8 and Java 11 by bundling JAX-WS. It also addresses several other minor issues I found while testing under 2019.2 including some logging noise. I've been using it as a daily driver for the past few days, as have several other users here.

    To install this build, download IlluminatedCloud2.zip--do not extract it--and use Settings/Preferences>Plugins>Install plugin from disk (under the gear drop-down). Restart the IDE and you'll be using this build.

    If you previously switched to a Java 8 host JRE using JB SDK Bintray Downloader, feel free to switch back. Either should work, though. The easiest way I've found to revert to the default Java 11 JRE is to remove the file idea.jdk / webstorm.jdk / etc. (the exact name is based on the host IDE) and restart the IDE. This file can be found under the config subdirectory of the base IDE's user-specific directory. You can also safely remove the jdks subdirectory found in the same location if no longer using the alternative JREs installed by the JB SDK Bintray Downloader, and you can uninstall the JB SDK Bintray Downloader plugin.

    Barring unforeseen circumstances, I'll promote this to the official build in the morning.

  18. Scott Wells repo owner

    Okay, 2.0.7.3 has been posted that should address all known issues except for the one that Xander reported. I'll investigate that one this morning and see what's going on, but this should allow IC2 to work with a Java 11 JRE and address other plugin SDK changes. If you installed the release candidate build posted late yesterday, you're already on this build. Thanks for all the feedback and help verifying the changes!

  19. Scott Wells repo owner

    @Xander Victory, I've extracted the issue you reported into #1370. Do you mind providing some additional context on what you were doing when you saw this popup in that issue so that I can investigate it today?

  20. Daniel Stefan

    Hi @Scott Wells , “but this should allow IC2 to work” - will there be also a java 11 supported build for IC1 Builds or will they stick to nailing down the version to a local 8 version?

  21. Scott Wells repo owner

    Daniel, I'll take a look this week. The issue is that IC1 is compatible with versions of IntelliJ IDEA back to 12. Let me see if I can make the 14+ version work with Java 11 without having to splinter off yet another distinct build.

  22. Scott Wells repo owner

    Galil, as mentioned just above, I'm going to investigate an update for IC1. The issue is that IC1 is compatible with much older versions of the base IDE which may introduce major compatibility issues. I'll take a look at that next week as I'm wrapping up a major IC2 update right now.

  23. Scott Wells repo owner

    I've attached a build of Illuminated Cloud 1 which is updated to work with 2019.2. Note that there is now a distinction between the build of IC1 that works with IntelliJ IDEA 14-2019.1 (IlluminatedCloud-14.zip) and the one that works with IntelliJ IDEA 2019.2+ (IlluminatedCloud-19.zip).

    To install this build, download the attached archive--do not extract it--and install it into IntelliJ IDEA 2019.2 using Settings/Preferences>Plugins>Install plugin from disk (under the gear drop-down).

    Please let me know your experience if you've installed it. I do not plan to release this build until I hear back from users who have tried it.

  24. Aaron Hallink

    Thanks Scott, that ZIP worked for me. For JDK 11 and 12 seems to be behaving. Where as the market place IC 1.0 doesn’t seem to work for either thanks!

  25. Scott Wells repo owner

    Glad to hear, Aaron. Thanks! I'll definitely look at promoting this build to the official build in the next day or two.

  26. Scott Wells repo owner

    I've now updated the IC1 official release with a build specific to 2019.2. Both IC1 and IC2 should be good to go.

  27. Log in to comment