Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issues with 'vendor = JvmVendorSpec.JETBRAINS' and jcef #1538

Open
shalom938 opened this issue Feb 3, 2024 · 0 comments
Open

Issues with 'vendor = JvmVendorSpec.JETBRAINS' and jcef #1538

shalom938 opened this issue Feb 3, 2024 · 0 comments
Labels

Comments

@shalom938
Copy link
Contributor

What happened?

if 'vendor = JvmVendorSpec.JETBRAINS' is configured for java toolchain or kotlin toolchain and launching Idea 2022.3.3 with runIde there is a jcef error

I understand that runIde will prefer the JBR from java toolchain if the vendor is JetBrains. this may cause issues when launching 2022.3.3.
the default bundled runtime for 2022.3.3 is 17.0.6+1-b653.34.
if the java toolchain is configured with vendor = JvmVendorSpec.JETBRAINS it will download 17.0.10+1-b1087.17 , and runIde will use this runtime to run the IDE.
but when 2022.3.3 is run with 17.0.10+1-b1087.17 there is a jcef error , IMO because there are changes in jcef code between 17.0.6 to 17.0.10.
so if i want to configure 'vendor = JvmVendorSpec.JETBRAINS' it forces me to set jbrVersion = "17.0.6b653.34" when launching 2022.3.3.

I'm not an expert but I wonder why even use the JBR from java toolchain to launch the IDE ? why not always prefer the bundled JBR unless explicitly configured otherwise with jbrVersion or ideDir ?

another issue will be if languageVersion=17 and vendor = JvmVendorSpec.JETBRAINS and launching 2024.1 runIde will launch 2024.1 with JBR 17 while the bundled JBR is 21 and 2024.1 should run with 21.

so i wonder why should I even configure vendor = JvmVendorSpec.JETBRAINS , what is the benefit of building with JBR compared to just any jdk vendor ? I think it will cause issues as above in the future.

Relevant log output or stack trace

java.lang.ExceptionInInitializerError
	at com.intellij.ui.jcef.JBCefApp.getInstance(JBCefApp.java:240)
	at com.intellij.ui.jcef.JBCefBrowserBase.lambda$new$3(JBCefBrowserBase.java:152)
	at com.intellij.util.ObjectUtils.notNull(ObjectUtils.java:124)
	at com.intellij.ui.jcef.JBCefBrowserBase.<init>(JBCefBrowserBase.java:152)
	at com.intellij.ui.jcef.JBCefBrowser.<init>(JBCefBrowser.java:190)
	at com.intellij.ui.jcef.JBCefBrowser.create(JBCefBrowser.java:141)
	at com.intellij.ui.jcef.JBCefBrowserBuilder.build(JBCefBrowserBuilder.java:126)
	at org.digma.intellij.plugin.insights.InsightsServiceImpl.<init>(InsightsServiceImpl.java:117)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:54)
	at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClassWithConstructorInjection(ComponentManagerImpl.kt:996)
	at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:43)
	at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:39)
	at com.intellij.serviceContainer.BaseComponentAdapter.doCreateInstance(BaseComponentAdapter.kt:154)
	at com.intellij.serviceContainer.BaseComponentAdapter.createInstance$lambda$1(BaseComponentAdapter.kt:133)
	at com.intellij.openapi.progress.Cancellation.computeInNonCancelableSection(Cancellation.java:99)
	at com.intellij.serviceContainer.BaseComponentAdapter.createInstance(BaseComponentAdapter.kt:132)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:92)
	at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:673)
	at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:629)
	at org.digma.intellij.plugin.ui.service.InsightsService$Companion.getInstance(InsightsService.kt:42)
	at org.digma.intellij.plugin.ui.service.InsightsService.getInstance(InsightsService.kt)
	at org.digma.intellij.plugin.insights.InsightsReactPanel.<init>(InsightsReactPanel.java:18)
	at org.digma.intellij.plugin.ui.common.InsightsPanel.createInsightsNewPanel(InsightsPanel.kt:104)
	at org.digma.intellij.plugin.ui.common.InsightsPanel.getTabsPanel(InsightsPanel.kt:48)
	at org.digma.intellij.plugin.ui.common.InsightsPanel.<init>(InsightsPanel.kt:35)
	at org.digma.intellij.plugin.ui.common.ContentPanel.<init>(ContentPanel.kt:17)
	at org.digma.intellij.plugin.toolwindow.DigmaSidePaneToolWindowFactory.createToolWindowContent(DigmaSidePaneToolWindowFactory.java:75)
	at com.intellij.openapi.wm.impl.ToolWindowImpl.createContentIfNeeded$intellij_platform_ide_impl(ToolWindowImpl.kt:543)
	at com.intellij.openapi.wm.impl.ToolWindowImpl.scheduleContentInitializationIfNeeded$intellij_platform_ide_impl(ToolWindowImpl.kt:522)
	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.doShowWindow(ToolWindowManagerImpl.kt:1009)
	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.showToolWindowImpl(ToolWindowManagerImpl.kt:946)
	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.showToolWindowImpl$default(ToolWindowManagerImpl.kt:932)
	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.showToolWindow(ToolWindowManagerImpl.kt:829)
	at com.jetbrains.rdserver.toolWindow.BackendServerToolWindowManager.showToolWindow(BackendServerToolWindowManager.kt:194)
	at com.intellij.openapi.wm.impl.ToolWindowImpl.show(ToolWindowImpl.kt:276)
	at com.intellij.openapi.wm.ToolWindow.show(ToolWindow.java:65)
	at org.digma.intellij.plugin.ui.ToolWindowShower.show(ToolWindowShower.java:74)
	at org.digma.intellij.plugin.ui.ToolWindowShower.lambda$showToolWindow$0(ToolWindowShower.java:58)
	at org.digma.intellij.plugin.common.EDT.runWithErrorReporting(EDT.java:24)
	at org.digma.intellij.plugin.common.EDT.ensureEDT(EDT.java:16)
	at org.digma.intellij.plugin.ui.ToolWindowShower.showToolWindow(ToolWindowShower.java:47)
	at org.digma.intellij.plugin.common.StartupStartupActivity.lambda$runActivity$0(StartupStartupActivity.java:19)
	at org.digma.intellij.plugin.common.EDT.runWithErrorReporting(EDT.java:24)
	at org.digma.intellij.plugin.common.EDT.ensureEDT(EDT.java:16)
	at org.digma.intellij.plugin.common.StartupStartupActivity.lambda$runActivity$1(StartupStartupActivity.java:19)
	at com.intellij.openapi.project.DumbServiceImpl.doRun(DumbServiceImpl.java:388)
	at com.intellij.openapi.project.DumbServiceImpl.updateFinished(DumbServiceImpl.java:380)
	at com.intellij.openapi.project.TrackedEdtActivityService$TrackedEdtActivity.run(TrackedEdtActivityService.java:66)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209)
	at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:838)
	at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:454)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:74)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:114)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:36)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:792)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:733)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:761)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:909)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:756)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$5(IdeEventQueue.java:437)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:436)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
	at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:615)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:434)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:838)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:480)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Caused by: java.lang.NullPointerException: Cannot invoke "org.cef.CefApp$CefVersion.getJcefVersion()" because the return value of "org.cef.CefApp.getVersion()" is null
	at com.intellij.ui.jcef.JBCefApp.<init>(JBCefApp.java:209)
	at com.intellij.ui.jcef.JBCefApp$Holder.init(JBCefApp.java:278)
	at com.intellij.ui.jcef.JBCefApp$Holder.<clinit>(JBCefApp.java:258)
	... 84 more

Steps to reproduce

configure java toolchin with languageVersion=17 and vendor = JvmVendorSpec.JETBRAINS and launch runIde 2022.3.3 , if the plugin calls JBCefBrowser.create(this) it will throw the error in the attached stack trace

Gradle IntelliJ Plugin version

1.17.0

Gradle version

8.5

Operating System

Linux

Link to build, i.e. failing GitHub Action job

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant