Hi Naoto,
Thank you for the review, comments inline.
Some issues are still to be addressed.
On 1/17/2013 6:55 PM, Naoto Sato wrote:
Hi Sherman,
Here are my comments on the 310 changes:
- java/util/Formatter.java
Line 4125: To do a locale neutral case mapping, use Locale.ROOT
instead of Locale.US.
Line 4161-4169: Remove this as it is commented out. Also "import
sun.util.locale.provider.TimeZoneNameUtility" is not needed either.
Line 4173, 4183, 4195: The code assumes Locale.US if "l == null." Is
this correct? Should it be Locale.ROOT?
- java/time/DayOfWeek.java
Line 298-300: Maybe just me, but I thought the convention for "throws"
was to consolidate conditions into a single "throws" line for the same
exception.
This style is used by JSR 310 and will need to be reconciled with the JDK
before release.
- java/time/ZoneOffset.java
Line 214: @SuppressWarnings("fallthrough")?
intentional; fixed with @SuppressWarnings
- java/time/calendar/ChronoDateImpl.java:
In the example in the class description, "%n" should be "\n" for the
new lines in the printf()s.
According to java.util.Format %n is the platform specific line separator.
"\n" would, I expect, work just as well.
- java/time/calendar/HijrahDeviationReader.java
Line 224: Is it OK to catch all Exception here, and pretends as if
nothing happened?
That check is an optimization of the library path. Even if it fails, the
file will be checked with the unoptimized library path.
What is the convention for reporting configuration errors? It might be
applicable in this case.
- java/time/calendar/JapaneseChrono.java
Line 166-172: How come it includes "Keio"? Isn't the era before
"Meiji" "Seireki"?
Those resources are unused and should be removed.
The Era names are provided by the JapaneseEra class.
- java/time/calendar/MinguoDate.java
Is it OK to NOT serialize "isoDate"? JapaneseDate.java has @serial on
this field. \
The @serial and readObject in JapaneseDate is out of date, the
serialized form for
all of ChronoLocalDates use writeReplace to put an instance of "Ser" in
the stream.
- java/time/calendar/ThaiBuddhistDate.java
Same as above MinguoDate.java
Same as MinguoDate
- java/time/format/DateTimeBuilder.java
There are several "TODO"s in here.
DateTimeBuilder is in the process of being redesigned and will be
updated for M7.
Line 357: It is commented that return value is for ZoneOffset/ZoneId.
But since it is public, could this be safe? Can arbitrary app modify
it maliciously?
DateTimeBuilder is a working context for resolving individual fields
during parsing.
Its instances are short lived and not shared.
- java/time/format/DateTimeFormatSymbols.java
Line 131: It should use the default locale for formatting, i.e,
Locale.getDefault(Locale.Category.FORMAT)
- java/time/format/DateTimeFormatter.java
Line 411: DateTimeException needs to be described, as it is thrown in
this method.
added
Line 486: The DateTimeException needs to be on @throws clause.
added
- java/time/format/DateTimeFormatterBuilder
Line 174: The type for "padNextChar" should be "int" to accommodate
supplementary characters. Not only this particular instance, it looks
like there are bunch of places that use ++/-- for character iteration.
Are they OK?
Line 236: "sensitive" -> "insensitive"
Line 276: "strict" -> "lenient"
Line 1440: use Locale.getDefault(Locale.Category.FORMAT)
- java/time/format/DateTimeFormatters.java
Line 271, 294, 317, 340: Locale.getDefault() ->
Locale.getDefault(Locale.Category), "default locale" -> "default
FORMAT locale"
- java/time/format/DateTimeParseContext.java
Line 194, 195: Should those to[Lower/Upper]Case() take Locale.ROOT as
an argument? Remember the Turkish 'i' case?
- java/time/overview.html
Should the contents here be moved to package.html? Should we continue
to use "Threeten" name?
The overview.html is present only for the JSR 310 Public Review as
an overview of the API and will not be present in the JDK.
Most of its contents have been integrated into java.time package javadoc.
- java/time/temporal/Chrono.java
Line 102: "minguoDate" -> "thaiDate"
fixed
Line 212: The comment is kind of cryptic. Looks like not "removing"
but "registering"
Corrected.
- java/time/zone/TzdbZoneRulesProvider.java
Line 171: Is it OK to catch all exceptions here and ignore?
Similar to the treatment in HijrahDeviationReader; the library path
optimization
may fail but the file checks are done later.
- sun/tools/tzdb/*
Should the compile be moved under "make" directory, instead of "src"?
Naoto
On 1/15/13 4:13 PM, Xueming Shen wrote:
Hi,
The Threeten project [1] is planned to be integrated into OpenJDK8 M6
milestone.
Here is the webrev
http://cr.openjdk.java.net/~sherman/8003680/webrev
and the latest javadoc
http://cr.openjdk.java.net/~sherman/8003680/javadoc
Review comments can be sent to the threeten-dev email list [2] and/or
core-libs-dev email list[3].
Thanks,
Sherman
[1] http://openjdk.java.net/projects/threeten
[2] threeten-dev @ openjdk.java.net
[3] core-libs-dev @ openjdk.java.net