diff --git a/core/src/main/java/hudson/scm/ChangeLogParser.java b/core/src/main/java/hudson/scm/ChangeLogParser.java index f666451f99be52b3e37d627ff13e6a4b843120a9..52c2fbeb38d8faf01211b48194dddf301f997e2f 100644 --- a/core/src/main/java/hudson/scm/ChangeLogParser.java +++ b/core/src/main/java/hudson/scm/ChangeLogParser.java @@ -41,7 +41,7 @@ import org.xml.sax.SAXException; */ public abstract class ChangeLogParser { - public ChangeLogSet parse(Run build, File changelogFile) throws IOException, SAXException { + public ChangeLogSet parse(Run build, RepositoryBrowser browser, File changelogFile) throws IOException, SAXException { if (build instanceof AbstractBuild && Util.isOverridden(ChangeLogParser.class, getClass(), "parse", AbstractBuild.class, File.class)) { return parse((AbstractBuild) build, changelogFile); } else { @@ -51,6 +51,6 @@ public abstract class ChangeLogParser { @Deprecated public ChangeLogSet parse(AbstractBuild build, File changelogFile) throws IOException, SAXException { - return parse((Run) build, changelogFile); + return parse((Run) build, build.getProject().getScm().getEffectiveBrowser(), changelogFile); } } diff --git a/core/src/main/java/hudson/scm/ChangeLogSet.java b/core/src/main/java/hudson/scm/ChangeLogSet.java index 9d8c7468310b4192f375e0aff40380c69bb3694a..12049d709a3b61f957e48b29d32ee6d28bc35e03 100644 --- a/core/src/main/java/hudson/scm/ChangeLogSet.java +++ b/core/src/main/java/hudson/scm/ChangeLogSet.java @@ -59,14 +59,16 @@ public abstract class ChangeLogSet implements Iter * Build whose change log this object represents. */ private final Run build; + private final RepositoryBrowser browser; - protected ChangeLogSet(Run build) { + protected ChangeLogSet(Run build, RepositoryBrowser browser) { this.build = build; + this.browser = browser; } @Deprecated protected ChangeLogSet(AbstractBuild build) { - this((Run) build); + this((Run) build, build.getParent().getScm().getEffectiveBrowser()); } @AdaptField(name="build", was=AbstractBuild.class) @@ -74,6 +76,10 @@ public abstract class ChangeLogSet implements Iter return build; } + public RepositoryBrowser getBrowser() { + return browser; + } + /** * Returns true if there's no change. */ diff --git a/core/src/main/java/hudson/scm/EmptyChangeLogSet.java b/core/src/main/java/hudson/scm/EmptyChangeLogSet.java index 82195b84c2dd4b1a741211400c339cfe5a16c64c..6329a6fa5c0015aa486a4fd540a5af5aa5731184 100644 --- a/core/src/main/java/hudson/scm/EmptyChangeLogSet.java +++ b/core/src/main/java/hudson/scm/EmptyChangeLogSet.java @@ -1,6 +1,8 @@ package hudson.scm; import hudson.model.Run; +import java.io.IOException; +import java.net.URL; import java.util.Collections; import java.util.Iterator; @@ -12,7 +14,11 @@ import java.util.Iterator; */ final class EmptyChangeLogSet extends ChangeLogSet { /*package*/ EmptyChangeLogSet(Run build) { - super(build); + super(build, new RepositoryBrowser() { + @Override public URL getChangeSetLink(ChangeLogSet.Entry changeSet) throws IOException { + return null; + } + }); } @Override diff --git a/core/src/main/java/hudson/scm/NullChangeLogParser.java b/core/src/main/java/hudson/scm/NullChangeLogParser.java index 28943e13864dc5d170c3bd4c77b8da49964c3461..19f6aeceb781190449f46915c95147fdb1330672 100644 --- a/core/src/main/java/hudson/scm/NullChangeLogParser.java +++ b/core/src/main/java/hudson/scm/NullChangeLogParser.java @@ -37,7 +37,7 @@ public class NullChangeLogParser extends ChangeLogParser { public static final NullChangeLogParser INSTANCE = new NullChangeLogParser(); - @Override public ChangeLogSet parse(Run build, File changelogFile) throws IOException, SAXException { + @Override public ChangeLogSet parse(Run build, RepositoryBrowser browser, File changelogFile) throws IOException, SAXException { return ChangeLogSet.createEmpty(build); }