cleanup [vcs]: don't hard-fail if action was not found

An example of the failure:
VcsQuickListPopupAction$Providers#children@ActionPlace.VcsQuickListPopupAction (com.intellij.openapi.vcs.actions.VcsQuickListPopupAction$Providers) "Vcs.Operations.Popup.Vcs.Providers", actionId=Vcs.Operations.Popup.Vcs.Providers

java.lang.AssertionError: Can not find action Show.WorkingTrees
	at com.intellij.dvcs.actions.DvcsQuickListContentProvider.add(DvcsQuickListContentProvider.java:63)
	at git4idea.actions.GitQuickListContentProvider.collectVcsSpecificActions(GitQuickListContentProvider.java:31)
	at com.intellij.dvcs.actions.DvcsQuickListContentProvider.customizeActions(DvcsQuickListContentProvider.java:46)
	at git4idea.actions.GitQuickListContentProvider.customizeActions(GitQuickListContentProvider.java:48)
	at com.intellij.dvcs.actions.DvcsQuickListContentProvider.getVcsActions(DvcsQuickListContentProvider.java:41)
	at com.intellij.openapi.vcs.actions.VcsQuickListPopupAction$Providers.lambda$getChildren$1(VcsQuickListPopupAction.java:83)
	at com.intellij.util.containers.JBIterator$FilterMapOp.apply(JBIterator.java:295)
	at com.intellij.util.containers.JBIterator.peekNext(JBIterator.java:134)
	at com.intellij.util.containers.JBIterator.hasNext(JBIterator.java:93)
	at com.intellij.util.containers.JBIterable.first(JBIterable.java:527)
	at com.intellij.openapi.vcs.actions.VcsQuickListPopupAction$Providers.getChildren(VcsQuickListPopupAction.java:84)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater$getGroupChildren$children$1$1$1.invoke(ActionUpdater.kt:350)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater$getGroupChildren$children$1$1$1.invoke(ActionUpdater.kt:349)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater$callAction$2$1.invoke(ActionUpdater.kt:147)
	at com.intellij.openapi.application.rw.InternalReadAction.insideReadAction(InternalReadAction.kt:111)
	at com.intellij.openapi.application.rw.InternalReadAction.tryReadCancellable$lambda$0(InternalReadAction.kt:101)
	at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal$lambda$0$0$0(cancellableReadAction.kt:32)
	at com.intellij.openapi.application.impl.AppImplKt$runnableUnitFunction$1.invoke(appImpl.kt:121)
	at com.intellij.openapi.application.impl.AppImplKt$runnableUnitFunction$1.invoke(appImpl.kt:121)
	at com.intellij.platform.locking.impl.NestedLocksThreadingSupport.tryRunReadAction(NestedLocksThreadingSupport.kt:884)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1232)
	at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal$lambda$0$0(cancellableReadAction.kt:30)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:73)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:152)
	at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal$lambda$0(cancellableReadAction.kt:28)
	at com.intellij.concurrency.ThreadContext.installThreadContext(threadContext.kt:305)
	at com.intellij.concurrency.ThreadContext.installThreadContext$default(threadContext.kt:303)
	at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal(cancellableReadAction.kt:24)
	at com.intellij.openapi.application.rw.InternalReadAction.tryReadCancellable(InternalReadAction.kt:100)
	at com.intellij.openapi.application.rw.InternalReadAction.tryReadAction(InternalReadAction.kt:86)
	at com.intellij.openapi.application.rw.InternalReadAction.readLoop(InternalReadAction.kt:73)
	at com.intellij.openapi.application.rw.InternalReadAction.access$readLoop(InternalReadAction.kt:15)
	at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$3.invokeSuspend(InternalReadAction.kt:35)
	at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$3.invoke(InternalReadAction.kt)
	at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$3.invoke(InternalReadAction.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:67)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43)
	at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:286)
	at com.intellij.openapi.application.rw.InternalReadAction.runReadAction(InternalReadAction.kt:34)
	at com.intellij.openapi.application.rw.PlatformReadWriteActionSupport.executeReadAction(PlatformReadWriteActionSupport.kt:66)
	at com.intellij.openapi.application.ReadWriteActionSupport.executeReadAction$default(ReadWriteActionSupport.kt:15)
	at com.intellij.openapi.application.CoroutinesKt.constrainedReadActionUndispatched(coroutines.kt:84)
	at com.intellij.openapi.application.CoroutinesKt.readActionUndispatched(coroutines.kt:71)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater$callAction$$inlined$useWithScope$1.invokeSuspend(trace.kt:114)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater$callAction$$inlined$useWithScope$1.invoke(trace.kt)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater$callAction$$inlined$useWithScope$1.invoke(trace.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:67)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.callAction(ActionUpdater.kt:925)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.access$callAction(ActionUpdater.kt:77)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater$getGroupChildren$children$1$1.invokeSuspend(ActionUpdater.kt:349)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater$getGroupChildren$children$1$1.invoke(ActionUpdater.kt)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater$getGroupChildren$children$1$1.invoke(ActionUpdater.kt)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater$getGroupChildren$$inlined$retryOnAwaitSharedData$1.invokeSuspend(ActionUpdater.kt:924)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:610)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:1188)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:775)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:762)

GitOrigin-RevId: 893adc9591d87a73f23621aa18452ef092086f75
This commit is contained in:
Max Medvedev
2026-01-09 01:09:25 +00:00
committed by intellij-monorepo-bot
parent eb7829e1b1
commit 6eca0a2a5a
@@ -1,9 +1,10 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.dvcs.actions;
import com.intellij.ide.ui.customization.CustomActionsSchema;
import com.intellij.ide.ui.customization.CustomisedActionGroup;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vcs.AbstractVcs;
import com.intellij.openapi.vcs.VcsActions;
@@ -59,8 +60,11 @@ public abstract class DvcsQuickListContentProvider implements VcsQuickListConten
}
protected static void add(String actionName, ActionManager manager, List<? super AnAction> actions) {
final AnAction action = manager.getAction(actionName);
assert action != null : "Can not find action " + actionName;
AnAction action = manager.getAction(actionName);
if (action == null) {
Logger.getInstance(DvcsQuickListContentProvider.class).error("Can not find action " + actionName);
return;
}
actions.add(action);
}
}