From 63ff1a9a6dfa36125a398d2889cf92e35fec5c7b Mon Sep 17 00:00:00 2001 From: alanharder Date: Thu, 2 Dec 2010 15:05:50 -0800 Subject: [PATCH] Merge r37113 from https://svn.java.net/svn/hudson~svn by willemv: Fixed boundary check error, and made variable names clearer. --- .../main/java/hudson/tasks/MailSender.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/hudson/tasks/MailSender.java b/core/src/main/java/hudson/tasks/MailSender.java index 770aa47c28..0d861774c3 100644 --- a/core/src/main/java/hudson/tasks/MailSender.java +++ b/core/src/main/java/hudson/tasks/MailSender.java @@ -358,20 +358,23 @@ public class MailSender { return msg; } - private void includeCulpritsOf(AbstractProject upstreamBuild, AbstractBuild currentBuild, BuildListener listener, Set recipientList) throws AddressException { - AbstractBuild pb = currentBuild.getPreviousBuild(); - AbstractBuild ub = currentBuild.getUpstreamRelationshipBuild(upstreamBuild); - AbstractBuild upb = pb!=null ? pb.getUpstreamRelationshipBuild(upstreamBuild) : null; - if(pb==null && ub==null && upb==null) { - listener.getLogger().println("Unable to compute the changesets in "+ upstreamBuild +". Is the fingerprint configured?"); + private void includeCulpritsOf(AbstractProject upstreamProject, AbstractBuild currentBuild, BuildListener listener, Set recipientList) throws AddressException { + AbstractBuild upstreamBuild = currentBuild.getUpstreamRelationshipBuild(upstreamProject); + AbstractBuild previousBuild = currentBuild.getPreviousBuild(); + AbstractBuild previousBuildUpstreamBuild = previousBuild!=null ? previousBuild.getUpstreamRelationshipBuild(upstreamProject) : null; + if(previousBuild==null && upstreamBuild==null && previousBuildUpstreamBuild==null) { + listener.getLogger().println("Unable to compute the changesets in "+ upstreamProject +". Is the fingerprint configured?"); return; } - if(pb==null || ub==null || upb==null) { - listener.getLogger().println("Unable to compute the changesets in "+ upstreamBuild); + if(previousBuild==null || upstreamBuild==null || previousBuildUpstreamBuild==null) { + listener.getLogger().println("Unable to compute the changesets in "+ upstreamProject); return; } - for( AbstractBuild b=upb; b!=ub && b!=null; b=b.getNextBuild()) + AbstractBuild b=previousBuildUpstreamBuild; + do { recipientList.addAll(buildCulpritList(listener,b.getCulprits())); + b = b.getNextBuild(); + } while ( b != upstreamBuild && b != null ); } private Set buildCulpritList(BuildListener listener, Set culprits) throws AddressException { -- GitLab