RFR: 8296935: Arrays.asList().set() with wrong types throws undocumented ArrayStoreException [v6]

David Holmes dholmes at openjdk.org
Mon Jan 23 07:24:22 UTC 2023


On Mon, 23 Jan 2023 07:20:39 GMT, Tingjun Yuan <duke at openjdk.org> wrote:

>> Document `java.util.Arrays.asList` that the list will throw an `ArrayStoreException` when attempting to set an element with a wrong type.
>
> Tingjun Yuan has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - Restore List.java
>  - Fix whitespace error

Changes requested by dholmes (Reviewer).

src/java.base/share/classes/java/util/Arrays.java line 4116:

> 4114:      *
> 4115:      * @implNote
> 4116:      * Modification methods of the returned list (such as {@link List#set} and

(This got buried in a commit specific message that got lost with the updates.)

My personal preference would be to call out explicitly what happens here:

@implNote
The  {@link List} implementation returned by this method does not conform to the 
specification for List.replaceAll and List.set, in that in the event of encountering an
element of an unsuitable type, ArrayStoreException will be thrown instead of 
ClassCastException.

(with suitable formatting of course). I don't think an example is necessary.

-------------

PR: https://git.openjdk.org/jdk/pull/12135


More information about the core-libs-dev mailing list