提交 fce4fed4 编写于 作者: K Kohsuke Kawaguchi

[JENKINS-21932] Merge pull request #1160

......@@ -86,6 +86,9 @@ Upcoming changes</a>
<li class=rfe>
Suppress fingerprint link if fingerprint record isn't available.
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-21818">issue 21818</a>)
<li class=bug>
Job hangs if one of multiple triggered builds was aborted
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-21932">issue 21932</a>)
</ul>
</div><!--=TRUNK-END=-->
......
......@@ -646,7 +646,7 @@ public class Queue extends ResourceController implements Saveable {
public synchronized boolean cancel(Item item) {
LOGGER.log(Level.FINE, "Cancelling {0} item#{1}", new Object[] {item.task, item.id});
boolean r = item.leave(this);
boolean r = item.cancel(this);
LeftItem li = new LeftItem(item);
li.enter(this);
......
......@@ -59,6 +59,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CancellationException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
......@@ -548,4 +549,34 @@ public class QueueTest extends HudsonTestCase {
assertFalse("Project " + project2.getDisplayName() + " stuck in pendings",item.task.getName().equals(project2.getName()));
}
}
public void testCancelInQueue() throws Exception
{
// parepare an offline slave.
DumbSlave slave = createOnlineSlave();
assertFalse(slave.toComputer().isOffline());
slave.toComputer().disconnect(null).get();
assertTrue(slave.toComputer().isOffline());
FreeStyleProject p = createFreeStyleProject();
p.setAssignedNode(slave);
QueueTaskFuture<FreeStyleBuild> f = p.scheduleBuild2(0);
try {
f.get(3, TimeUnit.SECONDS);
fail("Should time out (as the slave is offline).");
} catch (TimeoutException e) {
}
Queue.Item item = Queue.getInstance().getItem(p);
assertNotNull(item);
Queue.getInstance().doCancelItem(item.id);
assertNull(Queue.getInstance().getItem(p));
try {
f.get(10, TimeUnit.SECONDS);
fail("Should not get (as it is cancelled).");
} catch (CancellationException e) {
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册