On Tue, 27 May 2025 21:44:32 GMT, Roger Riggs <rri...@openjdk.org> wrote:
>> spec updated in class javadoc to RFC 9562 which obsolete RFC 4122, @spec tag >> also added above the method. > > I'd say "create" instead of "retrieve" in the first line comment. (Though > that word is used in the other static factories). > > The "sub-millisecond precision" can't be relied upon. Its the precision that > gives the impression that it can be added to the millisecond value and get an > exact time. But the nano-second value is read from a different clock and the > bits being used from it may wrap-around in the time between the reads of the > clocks. > The second description ("derived from") is makes fewer promises than the > first-line comment. > An application should not use them for any purpose other than random. And > for that the buffer already contains random bytes. > > An alternative is to capture the MS time and the nano-time on first use to > compute an offset and then use only the nano-time plus/minus the offset to > create the version 7 UUIDs. The `timestamp` method may mislead an app developer thinking its the time from the version 7 timestamp. The first-line comment might make it more obvious if it says: `The timestamp value associated with a version 1 UUID.` The Unix Epoch time would be easier to use if a method was added to return it. `long UnixEpochTimeNanos()` (name subject to bike-shedding). And throwing if it was not version 7. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/25303#discussion_r2110368888