-
Bug
-
Resolution: Fixed
-
P2
-
9
-
b151
-
b156
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8174588 | 10 | Doug Lea | P2 | Resolved | Fixed | b01 |
In JDK9b151
Vector::setSize(negative) throws ArrayIndexOutOfBoundsException on the first attempt but it also sets the size to the passed negative value.
Consider the following code
=========
public class NegativeSize {
public static void main(String[] args) {
java.util.Vector vector = new java.util.Vector<>();
setNegativeSize(vector);
setNegativeSize(vector);
}
private static void setNegativeSize(java.util.Vector vector) {
try {
System.err.println("trying Vector::setSize(-1)");
vector.setSize(-1);
System.err.println("No exception thrown");
} catch (ArrayIndexOutOfBoundsException e) {
System.err.println("OK. AIOOBE as expected.");;
}
System.err.println("and Vector::size() = " + vector.size());
}
}
=========
For JDK9b150:
trying Vector::setSize(-1)
OK. AIOOBE as expected.
and Vector::size() = 0
trying Vector::setSize(-1)
OK. AIOOBE as expected.
and Vector::size() = 0
For JDK9b151:
trying Vector::setSize(-1)
OK. AIOOBE as expected.
and Vector::size() = -1
trying Vector::setSize(-1)
No exception thrown
and Vector::size() = -1
Vector::setSize(negative) throws ArrayIndexOutOfBoundsException on the first attempt but it also sets the size to the passed negative value.
Consider the following code
=========
public class NegativeSize {
public static void main(String[] args) {
java.util.Vector vector = new java.util.Vector<>();
setNegativeSize(vector);
setNegativeSize(vector);
}
private static void setNegativeSize(java.util.Vector vector) {
try {
System.err.println("trying Vector::setSize(-1)");
vector.setSize(-1);
System.err.println("No exception thrown");
} catch (ArrayIndexOutOfBoundsException e) {
System.err.println("OK. AIOOBE as expected.");;
}
System.err.println("and Vector::size() = " + vector.size());
}
}
=========
For JDK9b150:
trying Vector::setSize(-1)
OK. AIOOBE as expected.
and Vector::size() = 0
trying Vector::setSize(-1)
OK. AIOOBE as expected.
and Vector::size() = 0
For JDK9b151:
trying Vector::setSize(-1)
OK. AIOOBE as expected.
and Vector::size() = -1
trying Vector::setSize(-1)
No exception thrown
and Vector::size() = -1
- backported by
-
JDK-8174588 Is able to set a negative j.u.Vector size in JDK9 b151
-
- Resolved
-