I've renamed the test programs and added a test case for java.time.
While I was adding the test case, I found JapaneseEra.getDisplayName
doesn't work with an additional era (JDK-8054214). I've already fixed
it, but the fix will be pushed separately later.
No other changes in this webrev.
http://cr.openjdk.java.net/~okutsu/9/8048123/webrev.02/
Thanks,
Masayoshi
On 7/31/2014 11:16 PM, Masayoshi Okutsu wrote:
I've decided to follow the current spec -- ignoring any invalid
property values. This way applications can still run without removing
the property even after installing a fixed update release.
Thanks,
Masayoshi
On 7/24/2014 9:35 AM, Masayoshi Okutsu wrote:
The expected property usage, which hasn't changed from the properties
file, is that we will provide the correct property value of any new
era probably with a test program which will verify the given values.
For JDK 6 to 8, the updated property file will need to be provided by
us with a test program. I don't expect that users regularly and
randomly define their own eras. The Japanese government defines eras
by decrees [1][2].
I could change the spec, which requires another CCC cycle, and add
error logging. But I believe that's overkill for the functionality
and its usage (basically only once every several ten years for the
limited number of users). In addition, the syntax isn't complicated
at all. And if any wrong values are given, such as a typo in the
given name, there will be no way to detect it in the API anyway.
BTW, I tend to avoid use of logging (and some other APIs) in the
date-time API. It could create inter dependencies leading to an
infinite loop to use some APIs from the date-time API. IIRC Sherman
and I have worked on such bug reports. It's far more difficult to
diagnose inter dependencies than syntax errors of the simple property
value.
If it's necessary to report any syntax errors, I think throwing an
exception should be a solution. So, should I start over from the spec?
Thanks,
Masayoshi
[1] http://law.e-gov.go.jp/htmldata/S64/S64SE001.html
[2]
http://www.mext.go.jp/b_menu/hakusho/nc/k19890107001/k19890107001.html
On 7/24/2014 1:44 AM, Naoto Sato wrote:
Although I believe the incorrect behavior would be very obvious
("era" specified in the property would simply be not used), I would
agree the failed property be better logged.
Naoto
On 7/23/14, 6:23 AM, Alan Bateman wrote:
On 23/07/2014 09:46, Masayoshi Okutsu wrote:
Revised the webrev:
http://cr.openjdk.java.net/~okutsu/9/8048123/webrev.01
The changes from the previous one are:
- Changed <pre><code> (originally <pre><tt>) to <pre>{@code
- Replaced StringTokenizer with String.split()
- Eliminated RuntimeException
The use of {@code ..} and replacing the usage of StringTokenizer look
good me.
I'm not so sure about silently ignoring errors in the property value,
mostly because it would lead to incorrect behavior that is likely
to be
very difficult to track down. If there area used logging then there
might be some hope of finding it but this isn't the case.
-Alan