From ce306954fa046215536f2da12d7571adbb66474c Mon Sep 17 00:00:00 2001 From: Stanislau Palyn Date: Tue, 16 Sep 2025 11:44:05 +0200 Subject: [PATCH] [vcs] Mark TaskCheckinHandler as DumbAware GitOrigin-RevId: b72da5d12cea24333641f4fb2588cb926d2d3cdc --- .../tasks/impl/TaskCheckinHandlerFactory.java | 41 +++++++++++-------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskCheckinHandlerFactory.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskCheckinHandlerFactory.java index eb9acb223318..931bb1ca0edf 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskCheckinHandlerFactory.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/impl/TaskCheckinHandlerFactory.java @@ -2,6 +2,7 @@ package com.intellij.tasks.impl; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.Project; import com.intellij.openapi.vcs.CheckinProjectPanel; import com.intellij.openapi.vcs.changes.CommitContext; @@ -21,25 +22,33 @@ public class TaskCheckinHandlerFactory extends CheckinHandlerFactory { @Override public @NotNull CheckinHandler createHandler(final @NotNull CheckinProjectPanel panel, final @NotNull CommitContext commitContext) { - return new CheckinHandler() { - @Override - public void checkinSuccessful() { - final String message = panel.getCommitMessage(); - final Project project = panel.getProject(); - final TaskManagerImpl manager = (TaskManagerImpl)TaskManager.getManager(project); - if (manager.getState().saveContextOnCommit) { - Task task = findTaskInRepositories(message, manager); - if (task == null) { - task = manager.createLocalTask(message); - ((LocalTaskImpl)task).setClosed(true); - } - LocalTask localTask = manager.addTask(task); - localTask.setUpdated(new Date()); + return new TaskCheckinHandler(panel); + } - ApplicationManager.getApplication().invokeLater(() -> WorkingContextManager.getInstance(project).saveContext(localTask), project.getDisposed()); + private static class TaskCheckinHandler extends CheckinHandler implements DumbAware { + final @NotNull CheckinProjectPanel panel; + + private TaskCheckinHandler(@NotNull CheckinProjectPanel panel) { + this.panel = panel; + } + + @Override + public void checkinSuccessful() { + final String message = panel.getCommitMessage(); + final Project project = panel.getProject(); + final TaskManagerImpl manager = (TaskManagerImpl)TaskManager.getManager(project); + if (manager.getState().saveContextOnCommit) { + Task task = findTaskInRepositories(message, manager); + if (task == null) { + task = manager.createLocalTask(message); + ((LocalTaskImpl)task).setClosed(true); } + LocalTask localTask = manager.addTask(task); + localTask.setUpdated(new Date()); + + ApplicationManager.getApplication().invokeLater(() -> WorkingContextManager.getInstance(project).saveContext(localTask), project.getDisposed()); } - }; + } } private static @Nullable Task findTaskInRepositories(String message, TaskManager manager) {