ICU Core Meeting Notes
Jan 17, 2007
Attending:
Mark Davis
John Emmons
Deborah Goldsmith
Andy Heninger
Eric Mader
Andrew Marcheret
Michael Ow
George Rhoten
Markus Scherer
Tex Texin
Yoshito Umaoka
Ram Viswanadha
Action Items
Number |
Due |
Who |
Description |
35 |
12/6/06 |
Andy |
Update the SVN
guide with instructions for SVN branch
naming conventions |
38 |
01/24/07 |
George |
Test the CNV data structure changes with ICU4J and make
sure the file is backwards compatible. |
41 |
1/24/07 |
Yoshito |
Submit ticket for adding new API to validate timezone
IDs |
42 |
1/24/07 |
Steven |
Submit ticket for investigating resynch() API for ICU4C |
Release Patches for IDNA Bug
The current bug fix contains one new error code that can be considered
an API. Patch releases should not contain API additions. Long
discussion on the contents of the patch followed.
Decision:
- Back port only the buffer overflow fix
- Release patches only for releases in which the API was
marked stable
ICU's getDefault*() methods
The getDefault*() and setDefault*() methods in ICU4C and ICU4J behave
differently. ICU4C's methods query the platform at startup time and
caches the default values and does not synchronize if the
values are changed. In ICU4J, some APIs synchronize with JDK's values
while others do not. There are technical challenges for synchronizing
with the platform settings on POSIX type systems. ICU4J is
meant to be a replacement for JDK, so the changes in default settings
in JDK should be reflected by ICU4J.
Decision:
- All getDefault*() methods in ICU4J should synchronize with
the JDK. This behavioral difference should be clearly documented
- Value of resynch() method for ICU4C should be investigated.
Timezone Issues
Please see http://bugs.icu-project.org/trac/ticket/5559
Decision (from Yoshito's email):
- If
specified tzid is using custom time zone id syntax
(GMT[+|-]h[h][[:]mm]), TimeZone.getTimeZone(String tzid) will return an
instance of TimeZone and its tzid (TimeZone.getID()) will be normalized
version of custom time zone id - GMT[+|-]hhmm (RFC822 format), instead
of "Custom". This behavior is NOT 100% compatible with Java
TimeZone.getTimeZone(String tzid) implementation, but Java can still
parse RFC822 format properly, so there is no interoperability issues.
- Syntax of custom time zone id which is properly parsed by
ICU is GMT[+|-]h[h][[:]mm]. Details are below -
a. "GMT"
can be lower or upper case, or mixed. Followings are all
valid prefix -> "GMT" "gmt" "Gmt" "gmT"...
b.
Sign must be '+' or '-' and always required
c.
Hours can be represented by single digit or double digit. The
valid range is 0 - 23, either having leading zero for offset <
10 or no leading zero. RFC822 definition allows hours up to
99, but ICU set its own "practical" limitation.
d.
Minutes is optional, but when supplied, it is always 2-digit number.
The valid minutes range is 0 - 59.
e.Colon
between hours and minutes is optional. When no minutes is
provided, colon after hours is invalid.
f.
No extra characters after the last offset number (either hours/minutes)
are allowed. For example, "GMT+0900J" is invalid.
g. Only US-ASCII digits (U+0030
- U+0039) are used for hours/minutes.
- This
change will be also applied to ICU4C (TimeZone::createTimeZone(const
UnicodeString&)).
- Add new
API to validate IDs