From ea04ff2e8f60a9cffa477653a158e8c312008d95 Mon Sep 17 00:00:00 2001 From: mindless Date: Thu, 11 Nov 2010 16:48:12 +0000 Subject: [PATCH] [FIXED HUDSON-8007] apply patch from raspy to allow build to start when polling interval is shorter than quiet period and we need a build/workspace for polling (don't continuously push out the quiet period) git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@36849 71c3de6d-444a-0410-be80-ed276b4c234a --- .../main/java/hudson/model/AbstractProject.java | 17 +++++++++++------ .../resources/hudson/model/Messages.properties | 1 + 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/hudson/model/AbstractProject.java b/core/src/main/java/hudson/model/AbstractProject.java index cc2b36387d..869c2d8245 100644 --- a/core/src/main/java/hudson/model/AbstractProject.java +++ b/core/src/main/java/hudson/model/AbstractProject.java @@ -1166,11 +1166,11 @@ public abstract class AbstractProject

,R extends A */ public PollingResult poll( TaskListener listener ) { SCM scm = getScm(); - if(scm==null) { + if (scm==null) { listener.getLogger().println(Messages.AbstractProject_NoSCM()); return NO_CHANGES; } - if(isDisabled()) { + if (isDisabled()) { listener.getLogger().println(Messages.AbstractProject_Disabled()); return NO_CHANGES; } @@ -1178,7 +1178,7 @@ public abstract class AbstractProject

,R extends A R lb = getLastBuild(); if (lb==null) { listener.getLogger().println(Messages.AbstractProject_NoBuilds()); - return BUILD_NOW; + return isInQueue() ? NO_CHANGES : BUILD_NOW; } if (pollingBaseline==null) { @@ -1197,7 +1197,7 @@ public abstract class AbstractProject

,R extends A } try { - if(scm.requiresWorkspaceForPolling()) { + if (scm.requiresWorkspaceForPolling()) { // lock the workspace of the last build FilePath ws=lb.getWorkspace(); @@ -1213,8 +1213,13 @@ public abstract class AbstractProject

,R extends A listener.getLogger().println( ws==null ? Messages.AbstractProject_WorkspaceOffline() : Messages.AbstractProject_NoWorkspace()); - listener.getLogger().println(Messages.AbstractProject_NewBuildForWorkspace()); - return BUILD_NOW; + if (isInQueue()) { + listener.getLogger().println(Messages.AbstractProject_AwaitingBuildForWorkspace()); + return NO_CHANGES; + } else { + listener.getLogger().println(Messages.AbstractProject_NewBuildForWorkspace()); + return BUILD_NOW; + } } else { WorkspaceList l = lb.getBuiltOn().toComputer().getWorkspaceList(); // if doing non-concurrent build, acquire a workspace in a way that causes builds to block for this workspace. diff --git a/core/src/main/resources/hudson/model/Messages.properties b/core/src/main/resources/hudson/model/Messages.properties index 580907119e..3879d4231b 100644 --- a/core/src/main/resources/hudson/model/Messages.properties +++ b/core/src/main/resources/hudson/model/Messages.properties @@ -27,6 +27,7 @@ AbstractBuild.KeptBecause=kept because of {0} AbstractItem.NoSuchJobExists=No such job ''{0}'' exists. Perhaps you meant ''{1}''? AbstractProject.NewBuildForWorkspace=Scheduling a new build to get a workspace. +AbstractProject.AwaitingBuildForWorkspace=Awaiting build to get a workspace. AbstractProject.Pronoun=Project AbstractProject.Aborted=Aborted AbstractProject.BuildInProgress=Build #{0} is already in progress{1} -- GitLab