diff --git a/core/src/main/java/hudson/model/AbstractProject.java b/core/src/main/java/hudson/model/AbstractProject.java index cc2b36387d6c63ef2f8b27409cbe8e0af9388e01..869c2d824502ea63c98332e48106b708867a63c3 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 580907119edeaa1a20fd5707a87cc2a67538f656..3879d4231b10e8beec72ce71d843447e619ec375 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}