Sorry again for taking time. Finally, I talked to some sustaining team members in Ireland to make a decision on the long-term tzdata maintenance issue. We've determined that Sun would need to continue to use the tzupdater tool as the main vehicle to deliver new tzdata files for Java runtime. Therefore, the proposed property needs to be supported for those who want to use another mechanism to update tzdata files.

I need to get approval on the proposed property support because it exposes an interface (even it's internal). To do that, I need to make a decision on the default value. I've been having some difficulty to think of default locations for other platforms, especially Windows. So I wondered if it's OK to make the property value undefined by default. Would that be acceptable for you?

Thanks,
Masayoshi

On 12/21/2007 11:59 AM, Masayoshi Okutsu wrote:
I apologize for the delay in responding. There have been some discussions in Sun about long term directions on tzdata maintenance. We might need to migrate to another mechanisms to update tzdata from the current tzupdater tool due to other platform dependent issues. But we haven't made a decision yet, and the discussion involves Sun's sustaining team, which is taking time.

There are some further comments on the proposed changes, including ones from Mark Reinhold.

   * If a user used Sun's tzupdater tool to update tzdata in JDK/JRE,
     the runtime would still pick up the older tzdata in
     /usr/share/javazi, which would cause maintenance problems
     (confusions). Do you plan to tell users that the tzupdater tool
     should never be used to update tzdata?
   * "user.zoneinfo.dir" is evaluated every time readZoneInfoFile()
     gets called. This means that the runtime may pick up tzdata from
     different locations if an application changed it during its
     execution. Should the tzdata directory be determined only once
     before reading tzdata first time?
   * The property name should be named as sun.* so that it's clearly
     understood as internal.
   * The default value should not be set in HotSpot's os_linux.cpp
     file, but rather in java_props_md.c.
* The proposal should include the default location for other platforms.

Thanks,
Masayoshi

On 9/20/2007 3:28 AM, Keith Seitz wrote:
Ping?
[I have not yet updated the RFE. I'm going to await further feedback.]

Keith Seitz wrote:
Masayoshi Okutsu wrote:
Sorry for taking time to respond.

Likewise!

I've filed an RFE for this request to make sure Sun's JRE supports the same mechanism. Sun's Change Request ID (aka bug ID) is 6593486.

I'll add my comments/patch there, too, but I wanted to briefly let you know what I've been up to with all of this.

* I think the "java." name space should be avoided for this purpose.
      "user.timezone.dir" should be OK.

Done.

    * I'd also suggest that "/usr/share/zoneinfo/java" be changed to
something like "/usr/share/javazi" because Java runtime may search
      files under /usr/share/zoneinfo to detect the platform time zone
      setting. It costs extra to skip all the files under
      /usr/share/zoneinfo/java if the directory comes before other
      directories in /usr/share/zoneinfo. Also I think
/usr/share/zoneinfo should contain the native Olson time zone data
      files only.

Done.

* I'm not sure if the current implementation is robust enough to be able to reject all broken data files. It does check magic numbers,
      though. You may need extra tests with random directory paths. Or
you could add more checking to see if the directory is right, such
      as existence of the ZoneInfoMappings file.

I've added a little something so that the code will check for a ZoneInfoMappings file before using the user.timezone.dir property. Beyond this, there seems little reason to do any more extreme error checking. The default is still to use the supplied, built-in tzdata. If the user sets user.timezone.dir to something else, he should be aware of what he is doing!

Thank you for your feedback,
Keith


Reply via email to