RFR: 8260468: Wrong behavior of LocalDateTimeStringConverter [v2]

Pankaj Bansal pbansal at openjdk.java.net
Tue Feb 23 17:55:43 UTC 2021


On Wed, 10 Feb 2021 02:24:57 GMT, Nir Lisker <nlisker at openjdk.org> wrote:

>> Fixes a mutability issue for `LocalDateTimeStringConverter` (and `LocalDateStringConverter`) where the chronology can change during the lifetime of the instance and cause an inconsistent state. The following changes were made:
>> 
>> * The input is now formatted and parsed directly with the formatter and parser (which are configured with a chronology) without the chronology field value of the class.
>> * The chronology field value does not change anymore when there is an exception due to inability to format the date.
>> * Logging on failed formatting was removed as it did not seem useful. The formatter will throw the same exception that the chronology field does anyway, so there is not much use to catching the exception before hand.
>> 
>> Added a test that fails without this patch. The test creates a converter with an explicit `Chronology` and `null` parser and formatter. The default formatter that is created with the given chronology formats a legal date (with respect to the chronology) to a string, which the parser should be able to convert back to a date. However, by forcing an exception in the formatting process using an illegal date, the chronology changes, and now when the parser is used it is configured with the new chronology and it can't parse the string correctly.
>
> Nir Lisker has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Removed printing and narrowed the exception

looks ok to me

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

Marked as reviewed by pbansal (Committer).

PR: https://git.openjdk.java.net/jfx/pull/393


More information about the openjfx-dev mailing list