--- jsr166/src/main/java/util/Vector.java 2019/10/10 16:53:08 1.57 +++ jsr166/src/main/java/util/Vector.java 2020/07/24 20:57:26 1.58 @@ -179,12 +179,13 @@ public class Vector * @since 1.2 */ public Vector(Collection c) { - elementData = c.toArray(); - elementCount = elementData.length; - // defend against c.toArray (incorrectly) not returning Object[] - // (see e.g. https://bugs.openjdk.java.net/browse/JDK-6260652) - if (elementData.getClass() != Object[].class) - elementData = Arrays.copyOf(elementData, elementCount, Object[].class); + Object[] a = c.toArray(); + elementCount = a.length; + if (c.getClass() == ArrayList.class) { + elementData = a; + } else { + elementData = Arrays.copyOf(a, elementCount, Object[].class); + } } /**