From f85c22eecf26e39ba5328bfb0d245d720723f9bb Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Mon, 10 Apr 2017 21:21:25 +0200 Subject: [PATCH] BuildArtifactsBeforeRunTaskProvider must not assume that returned before run tasks list is mutable --- .../impl/run/BuildArtifactsBeforeRunTaskProvider.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/run/BuildArtifactsBeforeRunTaskProvider.java b/java/compiler/impl/src/com/intellij/packaging/impl/run/BuildArtifactsBeforeRunTaskProvider.java index bfb1aefbefd3..c6826bd53f3f 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/run/BuildArtifactsBeforeRunTaskProvider.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/run/BuildArtifactsBeforeRunTaskProvider.java @@ -31,6 +31,7 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import javax.swing.*; +import java.util.ArrayList; import java.util.List; /** @@ -93,11 +94,11 @@ public class BuildArtifactsBeforeRunTaskProvider extends BuildArtifactsBeforeRun public static void setBuildArtifactBeforeRun(@NotNull Project project, @NotNull RunConfiguration configuration, @NotNull Artifact artifact) { RunManagerEx runManager = RunManagerEx.getInstanceEx(project); - final List buildArtifactsTasks = runManager.getBeforeRunTasks(configuration, ID); - if (buildArtifactsTasks.isEmpty()) { //Add new task if absent + final List buildArtifactsTasks = new ArrayList<>(runManager.getBeforeRunTasks(configuration, ID)); + if (runManager.getBeforeRunTasks(configuration, ID).isEmpty()) { //Add new task if absent BuildArtifactsBeforeRunTask task = new BuildArtifactsBeforeRunTask(project); buildArtifactsTasks.add(task); - List tasks = runManager.getBeforeRunTasks(configuration); + List tasks = new ArrayList<>(runManager.getBeforeRunTasks(configuration)); tasks.add(task); runManager.setBeforeRunTasks(configuration, tasks); }