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

[FIXED JENKINS-26690] Integer overflow in AbstractLazyLoadRunMap.headMap with negative arguments.

上级 3e920a90
......@@ -550,7 +550,7 @@ public abstract class AbstractLazyLoadRunMap<R> extends AbstractMap<Integer,R> i
private static final Comparator<Integer> COMPARATOR = new Comparator<Integer>() {
@Override public int compare(Integer o1, Integer o2) {
return o2 - o1;
return -o1.compareTo(o2);
}
};
......
......@@ -40,7 +40,6 @@ import java.util.SortedMap;
import java.util.logging.Level;
import org.junit.BeforeClass;
import org.jvnet.hudson.test.Issue;
import org.jvnet.hudson.test.Issue;
/**
* @author Kohsuke Kawaguchi
......@@ -133,6 +132,21 @@ public class AbstractLazyLoadRunMapTest {
}
}
@Issue("JENKINS-26690")
@Test public void headMap() {
assertEquals("[]", a.headMap(Integer.MAX_VALUE).keySet().toString());
assertEquals("[]", a.headMap(6).keySet().toString());
assertEquals("[]", a.headMap(5).keySet().toString());
assertEquals("[5]", a.headMap(4).keySet().toString());
assertEquals("[5]", a.headMap(3).keySet().toString());
assertEquals("[5, 3]", a.headMap(2).keySet().toString());
assertEquals("[5, 3]", a.headMap(1).keySet().toString());
assertEquals("[5, 3, 1]", a.headMap(0).keySet().toString());
assertEquals("[5, 3, 1]", a.headMap(-1).keySet().toString());
assertEquals("[5, 3, 1]", a.headMap(-2).keySet().toString()); // this failed
assertEquals("[5, 3, 1]", a.headMap(Integer.MIN_VALUE).keySet().toString());
}
@Test
public void lastKey() {
assertEquals(1, a.lastKey().intValue());
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册