Discussion:
RFR: 8209003: Consolidate use of empty collections in java.lang.module
Claes Redestad
2018-08-07 16:16:27 UTC
Permalink
Hi,

feel free to review this cleanup to consolidate some uses of
Collections.empty/unmodifiableXx.. to Set/Map/List.of()/copyOf(), as
appropriate. This aligns better with code already generated by jlink, so
avoids observing a mix of many implementation classes in some places..

Webrev: http://cr.openjdk.java.net/~redestad/8209003/jdk.00/

Bug: https://bugs.openjdk.java.net/browse/JDK-8209003

Due the specified need to throw IAE rather than NPE in certain cases,
code in some performance-insensitive API methods in
ModuleDescriptor.Builder now does an extra copy up front
(List/Set/Map.copyOf will throw NPE on any null element or key). I'd
rather keep the code simple than add extra handling to squeeze out the
last bit of performance here (maybe I'm getting old...)

Thanks!

/Claes
Alan Bateman
2018-08-07 18:25:45 UTC
Permalink
Post by Claes Redestad
Hi,
feel free to review this cleanup to consolidate some uses of
Collections.empty/unmodifiableXx.. to Set/Map/List.of()/copyOf(), as
appropriate. This aligns better with code already generated by jlink,
so avoids observing a mix of many implementation classes in some places..
Webrev: http://cr.openjdk.java.net/~redestad/8209003/jdk.00/
Bug: https://bugs.openjdk.java.net/browse/JDK-8209003
Due the specified need to throw IAE rather than NPE in certain cases,
code in some performance-insensitive API methods in
ModuleDescriptor.Builder now does an extra copy up front
(List/Set/Map.copyOf will throw NPE on any null element or key). I'd
rather keep the code simple than add extra handling to squeeze out the
last bit of performance here (maybe I'm getting old...)
This looks okay, I don't see anywhere where the behavior changes.

-Alan
mandy chung
2018-08-07 19:05:48 UTC
Permalink
This cleanup looks fine.

Mandy
Post by Claes Redestad
Hi,
feel free to review this cleanup to consolidate some uses of
Collections.empty/unmodifiableXx.. to Set/Map/List.of()/copyOf(), as
appropriate. This aligns better with code already generated by jlink, so
avoids observing a mix of many implementation classes in some places..
Webrev: http://cr.openjdk.java.net/~redestad/8209003/jdk.00/
Bug: https://bugs.openjdk.java.net/browse/JDK-8209003
Due the specified need to throw IAE rather than NPE in certain cases,
code in some performance-insensitive API methods in
ModuleDescriptor.Builder now does an extra copy up front
(List/Set/Map.copyOf will throw NPE on any null element or key). I'd
rather keep the code simple than add extra handling to squeeze out the
last bit of performance here (maybe I'm getting old...)
Thanks!
/Claes
Claes Redestad
2018-08-07 21:16:54 UTC
Permalink
Alan, Mandy,

thanks for reviewing. Pushed.

/Claes
Post by mandy chung
This cleanup looks fine.
Mandy
Loading...