提交 0b01182b 编写于 作者: C Christoph Kutzinski

[FIXED JENKINS-9003] NPE when polling after node removed

上级 68f5a0d2
......@@ -69,6 +69,9 @@ Upcoming changes</a>
<li class=bug>
Catch FileNotFoundException in Maven builds if Mojos are executed from a classes directory.
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-5044">issue 5044</a>)
<li class=bug>
Fix NPE if node of last build isn't available anymore while polling for SCM changes.
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-9003">issue 9003 </a>)
<li class=rfe>
Set NODE_NAME for master node to "master"
(<a href="http://issues.jenkins-ci.org/browse/JENKINS-9671">issue 9671</a>)
......
......@@ -1263,7 +1263,7 @@ public abstract class AbstractProject<P extends AbstractProject<P,R>,R extends A
// lock the workspace of the last build
FilePath ws=lb.getWorkspace();
if (ws==null || !ws.exists()) {
if (workspaceOffline(lb)) {
// workspace offline. build now, or nothing will ever be built
Label label = getAssignedLabel();
if (label != null && label.isSelfLabel()) {
......@@ -1326,6 +1326,24 @@ public abstract class AbstractProject<P extends AbstractProject<P,R>,R extends A
return NO_CHANGES;
}
}
private boolean workspaceOffline(R build) throws IOException, InterruptedException {
FilePath ws = build.getWorkspace();
if (ws==null || !ws.exists()) {
return true;
}
Node builtOn = build.getBuiltOn();
if (builtOn == null) { // node built-on doesn't exist anymore
return true;
}
if (builtOn.toComputer() == null) { // node still exists, but has 0 executors - o.s.l.t.
return true;
}
return false;
}
/**
* Returns true if this user has made a commit to this project.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册