From 20e4d0bd98f33f3de410fb4dc365b35b4978be50 Mon Sep 17 00:00:00 2001 From: kohsuke Date: Wed, 15 Sep 2010 17:56:50 +0000 Subject: [PATCH] when a lifecycle is forked, we end up getting multiple "redeploy artifacts" actions git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@34833 71c3de6d-444a-0410-be80-ed276b4c234a --- core/src/main/java/hudson/tasks/Fingerprinter.java | 8 ++++++++ .../hudson/maven/reporters/MavenArtifactArchiver.java | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/core/src/main/java/hudson/tasks/Fingerprinter.java b/core/src/main/java/hudson/tasks/Fingerprinter.java index 2f943c2dba..c2f7b2a980 100644 --- a/core/src/main/java/hudson/tasks/Fingerprinter.java +++ b/core/src/main/java/hudson/tasks/Fingerprinter.java @@ -249,6 +249,14 @@ public class Fingerprinter extends Recorder implements Serializable { onLoad(); // make compact } + public void add(Map moreRecords) { + Map r = new HashMap(record); + r.putAll(moreRecords); + record = ImmutableMap.copyOf(r); + ref = null; + onLoad(); + } + public String getIconFileName() { return "fingerprint.gif"; } diff --git a/maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifactArchiver.java b/maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifactArchiver.java index d1749144b5..7a98edd3a6 100644 --- a/maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifactArchiver.java +++ b/maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifactArchiver.java @@ -128,6 +128,11 @@ public class MavenArtifactArchiver extends MavenReporter { // record the action build.executeAsync(new MavenBuildProxy.BuildCallable() { public Void call(MavenBuild build) throws IOException, InterruptedException { + // if a build forks lifecycles, this method can be called multiple times + List old = Util.filter(build.getActions(), MavenArtifactRecord.class); + if (!old.isEmpty()) + build.getActions().removeAll(old); + MavenArtifactRecord mar = new MavenArtifactRecord(build,pomArtifact,mainArtifact,attachedArtifacts); build.addAction(mar); -- GitLab