RFR(m): update 2: JEP 269 initial API and skeleton implementation (JDK-8139232)

Roger Riggs Roger.Riggs at oracle.com
Fri Dec 4 20:39:56 UTC 2015


Hi Stuart,

List.java:

  - The varargs form would be more readable if the parameter was named 
'elements' instead of 'es'.
  - ditto Map and Set

Map.java:

  - in the @returns I would say returns "a {@code Map}" to be explicit 
about the return type.
    (ditto in Set and List to reinforce the return type)

  - the exception for duplicate keys that is thrown says duplicate 
elements but
    it is really the keys that are duplicated.
    In the @throws clause it would be more readable to say "if there are 
duplicates in the keys"
    or as is appears in Set:  "if there are any duplicate elements"

Reviewed: +1

Roger




On 12/03/2015 07:58 PM, Stuart Marks wrote:
> Small refresh here: after some consultation with Brian Goetz and John 
> Rose, I've updated the class doc text covers immutability and 
> value-based. They now say,
>
>  * They are structurally immutable. Elements cannot be added, removed, 
> or replaced. Attempts to do so result in 
> UnsupportedOperationException. However, if the contained elements are 
> themselves mutable, this may cause the List's contents to appear to 
> change.
>
> [and similar for Set and Map]
>
> * They are value-based. Callers should make no assumptions about the 
> identity of the returned instances. Factories are free to create new 
> instances or reuse existing ones. Therefore, identity-sensitive 
> operations on these instances (reference equality (==), identity hash 
> code, and synchronization) are unreliable and should be avoided.
>
> -- 
>
> I still need an official OpenJDK Reviewer.
>
> -- 
>
> API:
>
> http://cr.openjdk.java.net/~smarks/reviews/jep269/api.20151203/
>
> Specdiff:
>
>
> http://cr.openjdk.java.net/~smarks/reviews/jep269/specdiff.20151203/overview-summary.html 
>
>
> Webrev:
>
> http://cr.openjdk.java.net/~smarks/reviews/jep269/webrev.20151203/
>
> Thanks,
>
> s'marks
>
>
> On 12/1/15 6:35 PM, Stuart Marks wrote:
>> Hi all,
>>
>> Thanks for the previous round of review comments. Here's an updated 
>> API and
>> implementation for review.
>>
>> I've run specdiff with the --hu ("hide unchanged") option, so only 
>> the bits of
>> the specification that have changed are shown. As before, though, 
>> please ignore
>> the spurious change to EnumSet caused by a javadoc bug.
>>
>> API changes:
>>   - add clarifying notes on immutability
>>   - remove wording that implied creation of new objects
>>   - add "value-based" disclaimers
>>   - add ordering specification for List and non-ordering disclaimers
>>     for Set and Map
>>   - clarify that Map.ofEntries() doesn't store the Map.Entry objects, 
>> instead
>>     it extracts keys and values
>>   - Map.Entry instances returned from Map.entry() are *not* serializable
>>
>> Other:
>>   - markup cleanups
>>   - small implementation cleanups
>>
>> JEP:
>>
>>      http://openjdk.java.net/jeps/269
>>
>> API spec (basically List, Map, and Set):
>>
>> http://cr.openjdk.java.net/~smarks/reviews/jep269/api.20151201/
>>
>> Specdiff:
>>
>>
>> http://cr.openjdk.java.net/~smarks/reviews/jep269/specdiff.20151201/overview-summary.html 
>>
>>
>>
>> Webrev:
>>
>> http://cr.openjdk.java.net/~smarks/reviews/jep269/webrev.20151201/
>>
>> Thanks,
>>
>> s'marks




More information about the core-libs-dev mailing list