bazelbuild / intellij

IntelliJ plugin for Bazel projects
https://ij.bazel.build/
Apache License 2.0
760 stars 303 forks source link

Exception on MediaPipe-based project in Clion #5618

Closed Algomorph closed 10 months ago

Algomorph commented 11 months ago

Description of the bug:

Exception every time MP-based project loads in Clion.

Exception message:

java.lang.NullPointerException: Cannot invoke "com.google.idea.blaze.base.toolwindow.ConsoleView.getContent()" because the return value of "java.util.Map.get(Object)" is null
    at com.google.idea.blaze.base.toolwindow.TasksTreeConsoleView.treeSelectionChanged(TasksTreeConsoleView.java:95)
    at com.google.idea.common.ui.properties.Property.triggerChangeListeners(Property.java:97)
    at com.google.idea.common.ui.properties.Property.setValue(Property.java:80)
    at com.google.idea.blaze.base.toolwindow.TasksTreeView$TaskNodeAutoExpandingListener.treeNodesInserted(TasksTreeView.java:387)
    at com.intellij.util.ui.tree.TreeModelListenerList.treeNodesInserted(TreeModelListenerList.java:85)
    at com.intellij.ui.tree.AsyncTreeModel.treeNodesInserted(AsyncTreeModel.java:364)
    at com.intellij.ui.tree.AsyncTreeModel$CmdGetChildren.setNode(AsyncTreeModel.java:698)
    at com.intellij.ui.tree.AsyncTreeModel$Command.accept(AsyncTreeModel.java:475)
    at com.intellij.ui.tree.AsyncTreeModel.lambda$submit$12(AsyncTreeModel.java:293)
    at com.intellij.util.concurrency.Invoker$Wrapper.get(Invoker.java:329)
    at com.intellij.util.concurrency.Invoker$Wrapper.get(Invoker.java:320)
    at com.intellij.util.concurrency.Invoker$Task.run(Invoker.java:306)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173)
    at com.intellij.util.concurrency.Invoker.invokeSafely(Invoker.java:186)
    at com.intellij.util.concurrency.Invoker.lambda$offerSafely$0(Invoker.java:165)
    at com.intellij.util.concurrency.ContextRunnable.run(ContextRunnable.java:24)
    at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:193)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:861)
    at com.intellij.openapi.application.impl.ApplicationImpl$4.run(ApplicationImpl.java:478)
    at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:79)
    at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:121)
    at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:41)
    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.kt:685)
    at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$10(IdeEventQueue.kt:589)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWithoutImplicitRead(ApplicationImpl.java:1485)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:589)
    at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:67)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:369)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:368)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:368)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:363)
    at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:992)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:113)
    at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:992)
    at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$7(IdeEventQueue.kt:363)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:861)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:405)
    at com.intellij.ide.IdeEventQueue.pumpEventsForHierarchy(IdeEventQueue.kt:721)
    at com.intellij.openapi.progress.util.ProgressWindow.lambda$startBlocking$4(ProgressWindow.java:217)
    at com.intellij.openapi.application.impl.ApplicationImpl.runUnlockingIntendedWrite(ApplicationImpl.java:887)
    at com.intellij.openapi.progress.util.ProgressWindow.lambda$startBlocking$5(ProgressWindow.java:212)
    at com.intellij.openapi.progress.util.ProgressWindow.executeInModalContext(ProgressWindow.java:193)
    at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:210)
    at com.intellij.openapi.progress.impl.ProgressRunner.lambda$execFromEDT$7(ProgressRunner.java:317)
    at java.base/java.util.concurrent.CompletableFuture.uniAcceptNow(CompletableFuture.java:757)
    at java.base/java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:735)
    at java.base/java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:2182)
    at com.intellij.openapi.progress.impl.ProgressRunner.execFromEDT(ProgressRunner.java:314)
    at com.intellij.openapi.progress.impl.ProgressRunner.submit(ProgressRunner.java:254)
    at com.intellij.openapi.progress.impl.ProgressRunner.submitAndGet(ProgressRunner.java:195)
    at com.intellij.openapi.application.impl.ApplicationImpl.runProcessWithProgressSynchronously(ApplicationImpl.java:445)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:523)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:86)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:284)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:238)
    at com.google.idea.blaze.base.toolwindow.ConsoleView.addWrappedPredefinedFilters(ConsoleView.java:303)
    at com.google.idea.blaze.base.toolwindow.ConsoleView.addDefaultAndCustomFilters(ConsoleView.java:116)
    at com.google.idea.blaze.base.toolwindow.ConsoleView.create(ConsoleView.java:92)
    at com.google.idea.blaze.base.toolwindow.TasksTreeConsoleBehaviour.lambda$addTask$0(TasksTreeConsoleBehaviour.java:55)
    at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1220)
    at com.google.idea.blaze.base.toolwindow.TasksTreeConsoleBehaviour.addTask(TasksTreeConsoleBehaviour.java:55)
    at com.google.idea.blaze.base.toolwindow.ToolWindowTabs.addTask(ToolWindowTabs.java:51)
    at com.google.idea.blaze.base.toolwindow.TasksToolWindowServiceImpl.lambda$startTask$0(TasksToolWindowServiceImpl.java:61)
    at com.intellij.util.concurrency.ContextRunnable.run(ContextRunnable.java:24)
    at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:208)
    at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21)
    at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:190)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:861)
    at com.intellij.openapi.application.impl.ApplicationImpl$4.run(ApplicationImpl.java:478)
    at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:79)
    at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:121)
    at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:41)
    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.kt:685)
    at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$10(IdeEventQueue.kt:589)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWithoutImplicitRead(ApplicationImpl.java:1485)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:589)
    at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:67)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:369)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:368)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:368)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:363)
    at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:992)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
    at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:992)
    at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$7(IdeEventQueue.kt:363)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:861)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:405)
    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)

What's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.

I can't provide you a minimal example because I don't have time to make one and I can't use the current code due to proprietary nature.

Try MediaPipe repo from around a year ago, i.e. when it was still using Bazel 5.2. Import this into Clion as a Bazel project.

Approximate .bazelproject file:

directories:
  # Add the directories you want added as source here
  .

# Automatically includes all relevant targets under the 'directories' above
derive_targets_from_directories: false

targets:
  # If source code isn't resolving, add additional targets that compile it here
  //mediapipe/examples/ios/<redacted>/<redacted>:all # try with some IOS examples
  //mediapipe/<redacted>/client:all # try with some other targets in the repo that use the above example code
  # other targets redacted, shouldn't matter IMHO

additional_languages:
  # Uncomment any additional languages you want supported
  c
  # dart
  # javascript
  # python
  # typescript
  javascript # shouldn't matter
  typescript # shouldn't matter
  python # shouldn't matter

Which Intellij IDE are you using? Please provide the specific version.

CLion 2023.2.2 Build #CL-232.9921.42, built on September 12, 2023 Licensed to Gregory Kramida Subscription is active until March 8, 2024. For educational use only. Runtime version: 17.0.8+7-b1000.22 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Linux 6.2.0-36-generic GC: G1 Young Generation, G1 Old Generation Memory: 8192M Cores: 32 Registry: run.processes.with.pty=TRUE ide.experimental.ui=true debugger.attach.dialog.enabled=true cidr.max.intellisense.file.length=1000000 Non-Bundled Plugins: idea.plugin.protoeditor (232.9559.10) com.codeium.intellij (1.4.2) A move tab left and right using the keyboard plugin - by momomo.com (12.550) com.mikejhill.intellij.movetab (2.1.1) kemoke.net.cssmodule (1.1) com.google.idea.bazel.clwb (2023.10.10.0.1-api-version-232) Current Desktop: ubuntu:GNOME

What programming languages and tools are you using? Please provide specific versions.

See above .bazelproject

What Bazel plugin version are you using?

Bazel for CLion: 2023.10.10.0.1-api-version-232

Have you found anything relevant by searching the web?

No time, sorry

Any other information, logs, or outputs that you want to share?

No response

tpasternak commented 11 months ago

duplicate of #5559

tpasternak commented 10 months ago

Fixed in https://github.com/bazelbuild/intellij/pull/5665