ZoneRules.of() implies that transitionList is a superset of standardOffsetTransitionList but doesn't check that
Roman Leventov
leventov.ru at gmail.com
Thu Jan 30 05:56:35 UTC 2020
1) ZoneRules.of() implies that transitionList is a superset of
standardOffsetTransitionList but doesn't check that. Then it's possible to
construct ZoneRules instances that don't work correctly:
@Test
public void zoneRulesTest() {
LocalDateTime transitionDay = LocalDateTime.of(2020, 1, 1, 2, 0);
ZoneOffsetTransition trans = ZoneOffsetTransition.of(
transitionDay,
ZoneOffset.ofHours(1),
ZoneOffset.ofHours(2)
);
ZoneRules rules = ZoneRules.of(ZoneOffset.ofHours(1),
ZoneOffset.ofHours(1),
Arrays.asList(trans),
Collections.emptyList(), Collections.emptyList());
Assert.assertEquals(ZoneOffset.ofHours(2), rules.getOffset(
transitionDay.plusDays(7).toInstant(ZoneOffset.UTC)));
}
2) Unrelated issue in java-time code: in ZoneOffsetTransitionRule, there is
a typo, some variables are called "timeDefnition" (missed "i") and it leaks
to public Javadoc.
More information about the core-libs-dev
mailing list