From e67746c97ff91c391d058b9beb592618cfd1f614 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Mon, 10 Jun 2013 10:52:16 -0400 Subject: [PATCH] Queue.clearLeftItems to fix AbstractProjectTest.testGetBuildAfterGC test failure after 84a2593. --- core/src/main/java/hudson/model/Queue.java | 13 +++++++++---- .../test/java/hudson/model/AbstractProjectTest.java | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/hudson/model/Queue.java b/core/src/main/java/hudson/model/Queue.java index e53da67dc2..a162856f59 100644 --- a/core/src/main/java/hudson/model/Queue.java +++ b/core/src/main/java/hudson/model/Queue.java @@ -92,10 +92,6 @@ import java.util.Set; import java.util.Timer; import java.util.TreeSet; import java.util.Map.Entry; -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; -import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.Future; @@ -748,6 +744,15 @@ public class Queue extends ResourceController implements Saveable { return Collections.unmodifiableCollection(leftItems.asMap().values()); } + /** + * Immediately clear the {@link #getLeftItems} cache. + * Useful for tests which need to verify that no links to a build remain. + * @since 1.519 + */ + public void clearLeftItems() { + leftItems.invalidateAll(); + } + /** * Gets all items that are in the queue but not blocked * diff --git a/test/src/test/java/hudson/model/AbstractProjectTest.java b/test/src/test/java/hudson/model/AbstractProjectTest.java index f9c01f3318..754211e15c 100644 --- a/test/src/test/java/hudson/model/AbstractProjectTest.java +++ b/test/src/test/java/hudson/model/AbstractProjectTest.java @@ -291,6 +291,7 @@ public class AbstractProjectTest extends HudsonTestCase { public void testGetBuildAfterGC() throws Exception { FreeStyleProject job = createFreeStyleProject(); job.scheduleBuild2(0, new Cause.UserIdCause()).get(); + jenkins.getQueue().clearLeftItems(); MemoryAssert.assertGC(new WeakReference(job.getLastBuild())); assertTrue(job.getLastBuild() != null); } -- GitLab