From 369469b9a8407c95e2fd7e729815ddcc33b1814b Mon Sep 17 00:00:00 2001 From: nik Date: Wed, 18 Nov 2009 18:09:28 +0300 Subject: [PATCH] IDEADEV-41381: Artifacts: deleting of an artifact does not exclude it from "Build artifacts" setting --- .../impl/run/BuildArtifactsBeforeRunTask.java | 9 ++++++-- .../run/BuildArtifactsBeforeRunTaskProvider.java | 24 ++++++++++++++++++---- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/run/BuildArtifactsBeforeRunTask.java b/java/compiler/impl/src/com/intellij/packaging/impl/run/BuildArtifactsBeforeRunTask.java index 65a1d8d36b..0157fb7895 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/run/BuildArtifactsBeforeRunTask.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/run/BuildArtifactsBeforeRunTask.java @@ -22,6 +22,7 @@ import com.intellij.packaging.artifacts.ArtifactPointer; import com.intellij.packaging.artifacts.ArtifactPointerManager; import org.jdom.Element; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.Collections; @@ -80,8 +81,12 @@ public class BuildArtifactsBeforeRunTask extends BeforeRunTask { } } - public void removeArtifact(Artifact artifact) { - myArtifactPointers.remove(ArtifactPointerManager.getInstance(myProject).createPointer(artifact)); + public void removeArtifact(@NotNull Artifact artifact) { + removeArtifact(ArtifactPointerManager.getInstance(myProject).createPointer(artifact)); + } + + public void removeArtifact(final @NotNull ArtifactPointer pointer) { + myArtifactPointers.remove(pointer); } public boolean equals(Object o) { 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 fa35e8cf54..6178dd289c 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 @@ -32,10 +32,7 @@ import com.intellij.openapi.ui.DialogBuilder; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.util.Key; import com.intellij.openapi.util.Ref; -import com.intellij.packaging.artifacts.Artifact; -import com.intellij.packaging.artifacts.ArtifactManager; -import com.intellij.packaging.artifacts.ArtifactPointer; -import com.intellij.packaging.artifacts.ArtifactPointerManager; +import com.intellij.packaging.artifacts.*; import com.intellij.packaging.impl.compiler.ArtifactAwareCompiler; import com.intellij.packaging.impl.compiler.ArtifactCompileScope; import com.intellij.packaging.impl.compiler.IncrementalArtifactsCompiler; @@ -60,6 +57,25 @@ public class BuildArtifactsBeforeRunTaskProvider extends BeforeRunTaskProvider pointersList = task.getArtifactPointers(); + final ArtifactPointer[] pointers = pointersList.toArray(new ArtifactPointer[pointersList.size()]); + for (ArtifactPointer pointer : pointers) { + if (pointer.getArtifactName().equals(artifactName) && ArtifactManager.getInstance(myProject).findArtifact(artifactName) == null) { + task.removeArtifact(pointer); + } + } + } + } + } + }); } public Key getId() { -- 2.11.4.GIT