RFR: JDK-8166138 - DateTimeFormatter.ISO_INSTANT should handle offsets
Pallavi Sonal
pallavi.sonal at oracle.com
Mon Oct 1 16:38:34 UTC 2018
Thanks Roger, made the suggested changes.
Thanks,
Pallavi Sonal
From: Roger Riggs
Sent: Monday, October 01, 2018 9:29 PM
To: Pallavi Sonal <pallavi.sonal at oracle.com>; Naoto Sato <naoto.sato at oracle.com>; core-libs-dev <core-libs-dev at openjdk.java.net>
Subject: Re: RFR: JDK-8166138 - DateTimeFormatter.ISO_INSTANT should handle offsets
Hi,
The checkbox for compatibility Kind Behavioral should be checked. (You may need to hit Edit to see it).
A simple description of the compatibility risk may help clarify minimal.
Something to the effect, that there is no change in formatting behavior
and that parsing will now accept a numeric offset.
Otherwise, looks fine.
Thanks, Roger
On 10/01/2018 09:24 AM, Pallavi Sonal wrote:
Hi Naoto,
Here is the CSR for review :
https://bugs.openjdk.java.net/browse/JDK-8211316
Thanks,
Pallavi Sonal
-----Original Message-----
From: Naoto Sato
Sent: Friday, September 28, 2018 9:38 PM
To: Pallavi Sonal HYPERLINK "mailto:pallavi.sonal at oracle.com"<pallavi.sonal at oracle.com>; Roger Riggs HYPERLINK "mailto:roger.riggs at oracle.com"<roger.riggs at oracle.com>; core-libs-dev HYPERLINK "mailto:core-libs-dev at openjdk.java.net"<core-libs-dev at openjdk.java.net>
Subject: Re: RFR: JDK-8166138 - DateTimeFormatter.ISO_INSTANT should handle offsets
Hi Pallavi,
Please file a CSR for this, as this will change the behavior.
Naoto
On 9/28/18 8:53 AM, Pallavi Sonal wrote:
Thanks Roger. I will update it before the commit.
-----Original Message-----
From: Roger Riggs
Sent: Friday, September 28, 2018 6:15 PM
To: Pallavi Sonal HYPERLINK "mailto:pallavi.sonal at oracle.com"<pallavi.sonal at oracle.com>; core-libs-dev
HYPERLINK "mailto:core-libs-dev at openjdk.java.net"<core-libs-dev at openjdk.java.net>
Subject: Re: RFR: JDK-8166138 - DateTimeFormatter.ISO_INSTANT should
handle offsets
Hi Pallavi,
Looks fine,
But can you re-wrap the lines with the new links, they got longer than
100 chars with the link.
No new webrev is needed.
Thanks, Roger
On 9/28/18 8:35 AM, Pallavi Sonal wrote:
Thanks Roger and Stephen. Here is the updated webrev with the suggested changes:
http://cr.openjdk.java.net/~rpatil/8166138/webrev.04/
Thanks,
Pallavi Sonal
-----Original Message-----
From: Roger Riggs
Sent: Friday, September 28, 2018 12:51 AM
To: core-libs-dev HYPERLINK "mailto:core-libs-dev at openjdk.java.net"<core-libs-dev at openjdk.java.net>
Subject: Re: RFR: JDK-8166138 - DateTimeFormatter.ISO_INSTANT should
handle offsets
Hi Pallavi,
I'd suggest using @link for the reference (in both files).
It will be easier for the reader to traverse and understand the pattern.
DateTimeFormatterBuilder.java: line 836.
The trailing "</p>" should be omitted so the readability of the source is maintained.
Otherwise, looks good,
Thanks, Roger
On 09/27/2018 03:39 AM, Stephen Colebourne wrote:
In DateTimeFormatter you need to qualify the @code part to refer to
DateTimeFormatterBuilder.
Otherwise good.
thanks
Stephen
On Thu, 27 Sep 2018 at 05:35, Pallavi Sonal HYPERLINK "mailto:pallavi.sonal at oracle.com"<pallavi.sonal at oracle.com> wrote:
Thanks for the clarification. Here is the updated webrev for review :
http://cr.openjdk.java.net/~rpatil/8166138/webrev.03/
Thanks,
Pallavi Sonal
-----Original Message-----
From: Stephen Colebourne HYPERLINK "mailto:scolebourne at joda.org"<scolebourne at joda.org>
Sent: Tuesday, September 25, 2018 4:39 PM
To: core-libs-dev HYPERLINK "mailto:core-libs-dev at openjdk.java.net"<core-libs-dev at openjdk.java.net>
Subject: Re: RFR: JDK-8166138 - DateTimeFormatter.ISO_INSTANT
should handle offsets
I think it makes sense for both, although I was only considering
appendInstant() when I wrote it.
Stephen
On Tue, 25 Sep 2018 at 09:27, Pallavi Sonal HYPERLINK "mailto:pallavi.sonal at oracle.com"<pallavi.sonal at oracle.com> wrote:
Hi Stephen,
Is the addition to the documentation in your mail below meant for only appendInstant() method or for DateTimeFormatter.ISO_INSTANT as well ?
-----Original Message-----
From: Stephen Colebourne HYPERLINK "mailto:scolebourne at joda.org"<scolebourne at joda.org>
Sent: Sunday, September 23, 2018 12:36 PM
To: core-libs-dev HYPERLINK "mailto:core-libs-dev at openjdk.java.net"<core-libs-dev at openjdk.java.net>
Subject: Re: RFR: JDK-8166138 - DateTimeFormatter.ISO_INSTANT
should handle offsets
Thanks
Can we change the docs to:
<p>
When formatting, the instant will always be suffixed by 'Z' to indicate UTC.
When parsing, the behaviour of {@code appendOffsetId()} will be used to parse the offset, converting the instant to UTC as necessary.
thanks
Stephen
On Fri, 21 Sep 2018 at 13:26, Pallavi Sonal HYPERLINK "mailto:pallavi.sonal at oracle.com"<pallavi.sonal at oracle.com> wrote:
Thank you Stephen for your inputs. Based on that, here is the updated webrev for review :
http://cr.openjdk.java.net/~rpatil/8166138/webrev.02/
Thanks,
Pallavi Sonal.
-----Original Message-----
From: Stephen Colebourne HYPERLINK "mailto:scolebourne at joda.org"<scolebourne at joda.org>
Sent: Thursday, September 20, 2018 6:38 PM
To: core-libs-dev HYPERLINK "mailto:core-libs-dev at openjdk.java.net"<core-libs-dev at openjdk.java.net>
Subject: Re: RFR: JDK-8166138 - DateTimeFormatter.ISO_INSTANT
should handle offsets
Thanks for the update.
The test case does not cover the situation of MAX/MIN instant and an offset other than zero, where the offset makes the instant invalid.
eg. a negative offset at MAX or a positive offset at MIN.
The doc of appendInstant() in DateTimeFormatterBuilder should be clarified to cover the fact that any OffsetId is parsed.
thanks
Stephen
On Thu, 20 Sep 2018 at 13:54, Pallavi Sonal HYPERLINK "mailto:pallavi.sonal at oracle.com"<pallavi.sonal at oracle.com> wrote:
Thanks Roger , Naoto and Stephen for the review and valuable inputs.
Here is the updated webrev for review :
http://cr.openjdk.java.net/~rpatil/8166138/webrev.01/
Thanks,
Pallavi Sonal
-----Original Message-----
From: Stephen Colebourne HYPERLINK "mailto:scolebourne at joda.org"<scolebourne at joda.org>
Sent: Thursday, September 20, 2018 2:50 AM
To: core-libs-dev HYPERLINK "mailto:core-libs-dev at openjdk.java.net"<core-libs-dev at openjdk.java.net>
Subject: Re: RFR: JDK-8166138 - DateTimeFormatter.ISO_INSTANT
should handle offsets
Thanks for looking at this.
The proposed fix does not tackle the bug fully. The bug is that
the spec says
"The format consists of: The ISO_OFFSET_DATE_TIME where ..."
As such, the format must parse *any* offset, not just "Z" / "+00:00" etc.
In addition, the fix doesn't work properly. Parsers work off a CharSequence which may be much longer than the instant. For example, the instant might be followed by a literal space and then a ZoneId.
Using (length - 3) is simply not a valid approach - the parsing code cannot use the length like that.
Furthermore, although there are numerous valid ISO-8601 ways of
saying zero, this format uses dashes and colons in the date/time
part, so
ISO-8601 restricts the offset to only those formats that include colons.
I think it simply needs the appendLiteral(Z) changing to appendOffsetId() And line 3495 changes to use the offset from the newContext.
thanks
Stephen
On Wed, 19 Sep 2018 at 18:16, Pallavi Sonal HYPERLINK "mailto:pallavi.sonal at oracle.com"<pallavi.sonal at oracle.com> wrote:
Hi,
Please review the changes to the following issue:
Bug : https://bugs.openjdk.java.net/browse/JDK-8166138
The proposed fix is located at:
Webrev : http://cr.openjdk.java.net/~rpatil/8166138/webrev.00/
As per ISO 8601 standards, an offset of zero, in addition to having the special representation "Z", can also be stated numerically as "+00:00", "+0000", or "+00" [1]. With this fix, Instant.parse() can parse a String containing the zero offsets in any of these three forms. Any other offset apart from "Z", "+00:00", "+0000", or "+00" will not be accepted in the input string to be parsed.
[1] https://en.wikipedia.org/wiki/ISO_8601
Thanks,
Pallavi Sonal
--
Thanks, Roger
--
Thanks, Roger
More information about the core-libs-dev
mailing list