提交 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 ...@@ -585,6 +585,8 @@ public abstract class AbstractLazyLoadRunMap<R> extends AbstractMap<Integer,R> i
numberOnDisk = a; numberOnDisk = a;
} }
entrySet.clearCache();
return unwrap(old); return unwrap(old);
} }
...@@ -742,6 +744,8 @@ public abstract class AbstractLazyLoadRunMap<R> extends AbstractMap<Integer,R> i ...@@ -742,6 +744,8 @@ public abstract class AbstractLazyLoadRunMap<R> extends AbstractMap<Integer,R> i
BuildReference<R> old = copy.byId.remove(getIdOf(run)); BuildReference<R> old = copy.byId.remove(getIdOf(run));
this.index = copy; this.index = copy;
entrySet.clearCache();
return unwrap(old)!=null; return unwrap(old)!=null;
} }
......
...@@ -32,6 +32,10 @@ class LazyLoadRunMapEntrySet<R> extends AbstractSet<Entry<Integer,R>> { ...@@ -32,6 +32,10 @@ class LazyLoadRunMapEntrySet<R> extends AbstractSet<Entry<Integer,R>> {
return all; return all;
} }
synchronized void clearCache() {
all = null;
}
@Override @Override
public int size() { public int size() {
return all().size(); return all().size();
......
...@@ -414,6 +414,13 @@ public class AbstractLazyLoadRunMapTest extends Assert { ...@@ -414,6 +414,13 @@ public class AbstractLazyLoadRunMapTest extends Assert {
assertEquals(0, b.entrySet().size()); 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") @Issue("JENKINS-18065")
@Test @Test
public void entrySetContains() { public void entrySetContains() {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册