<i18n dev> RFR: 8246788: ZoneRules invariants can be broken

Daniel Fuchs dfuchs at openjdk.java.net
Fri Jan 22 17:15:40 UTC 2021


On Fri, 22 Jan 2021 15:00:17 GMT, Florent Guillaume <github.com+592810+efge at openjdk.org> wrote:

>> src/java.base/share/classes/java/time/zone/ZoneRules.java line 263:
>> 
>>> 261:         // last rules
>>> 262:         Object[] temp = lastRules.toArray();
>>> 263:         ZoneOffsetTransitionRule[] rulesArray = Arrays.copyOf(temp, temp.length, ZoneOffsetTransitionRule[].class);
>> 
>> LGTM. Could be replaced by:
>> 
>> ZoneOffsetTransitionRule[] rulesArray = (ZoneOffsetTransitionRule[])lastRules.toArray(new ZoneOffsetTransitionRule[0]).clone();
>> 
>> if you wanted - but what you currently have is good for me.
>
> Or even maybe `rulesArray = lastRules.toArray(ZoneOffsetTransitionRule[]::new);`?

Good point - but that would be:

ZoneOffsetTransitionRule[] rulesArray = lastRules.toArray(ZoneOffsetTransitionRule[]::new).clone();

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

PR: https://git.openjdk.java.net/jdk/pull/2191


More information about the i18n-dev mailing list