ICU Core Meeting Notes
Jan 17, 2007
||Update the SVN
guide with instructions for SVN branch
||Test the CNV data structure changes with ICU4J and make
sure the file is backwards compatible.
||Submit ticket for adding new API to validate timezone
||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.
- Back port only the buffer overflow fix
- Release patches only for releases in which the API was
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.
- 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.
Please see http://bugs.icu-project.org/trac/ticket/5559
Decision (from Yoshito's email):
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 -
can be lower or upper case, or mixed. Followings are all
valid prefix -> "GMT" "gmt" "Gmt" "gmT"...
Sign must be '+' or '-' and always required
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.
Minutes is optional, but when supplied, it is always 2-digit number.
The valid minutes range is 0 - 59.
between hours and minutes is optional. When no minutes is
provided, colon after hours is invalid.
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.
change will be also applied to ICU4C (TimeZone::createTimeZone(const
- Add new
API to validate IDs