提交 b76e7bf9 编写于 作者: J Jesse Glick

[FIXED JENKINS-25655] Incorrect caching from entrySet sometimes caused incorrect results.

Caused a failure in hudson.plugins.promoted_builds.conditions.ManualConditionTest.testManualPromotionProcessViaWebClient when run against 1.580.1.
上级 1568166e
......@@ -585,6 +585,8 @@ public abstract class AbstractLazyLoadRunMap<R> extends AbstractMap<Integer,R> i
numberOnDisk = a;
}
entrySet.clearCache();
return unwrap(old);
}
......@@ -742,6 +744,8 @@ public abstract class AbstractLazyLoadRunMap<R> extends AbstractMap<Integer,R> i
BuildReference<R> old = copy.byId.remove(getIdOf(run));
this.index = copy;
entrySet.clearCache();
return unwrap(old)!=null;
}
......
......@@ -32,6 +32,10 @@ class LazyLoadRunMapEntrySet<R> extends AbstractSet<Entry<Integer,R>> {
return all;
}
synchronized void clearCache() {
all = null;
}
@Override
public int size() {
return all().size();
......
......@@ -414,6 +414,13 @@ public class AbstractLazyLoadRunMapTest extends Assert {
assertEquals(0, b.entrySet().size());
}
@Issue("JENKINS-25655")
@Test public void entrySetChanges() {
assertEquals(3, a.entrySet().size());
a.put(new Build(7, "D"));
assertEquals(4, a.entrySet().size());
}
@Issue("JENKINS-18065")
@Test
public void entrySetContains() {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册