aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorglewis <glewis@FreeBSD.org>2012-05-02 14:13:16 +0800
committerglewis <glewis@FreeBSD.org>2012-05-02 14:13:16 +0800
commit1f2335290aba264a8305b59457fe454e8d39d76f (patch)
treedc1976aa42681e88c35d29ce5993077c2966a473 /java
parent1773856a261016ec8115dd7bcacb8de0b0be3f61 (diff)
downloadfreebsd-ports-gnome-1f2335290aba264a8305b59457fe454e8d39d76f.tar.gz
freebsd-ports-gnome-1f2335290aba264a8305b59457fe454e8d39d76f.tar.zst
freebsd-ports-gnome-1f2335290aba264a8305b59457fe454e8d39d76f.zip
. Fix the look up of time zone data when TZUPDATE is turned on and as a
result turn it on by default again. This change bears a little more explanation. In UnixFileSystem.java there is a cache of canonical paths and in particular one for paths inside java.home. The problem with looking up time zone data is that if another path within java.home has been looked up then the symlink for the time zone data is not resolved (since the cache assumes there are no symlinks in java.home) and we fail to be able to open the ZoneInfoMapping file. One of the other features in UnixFileSystem is that the cache is not consulted and full resolution occurs for paths containing "." or "..". I've chosen to (ab)use this to force resolution of the time zone data directory in ZoneInfoFile.java rather than doing something like IcedTea did which was to introduce a tz.properties file where they would stash the time zone info directory rather than symlinking it in. For full reference that patch is here: http://icedtea.classpath.org/hg/icedtea6/file/tip/patches/use-system-tzdata.patch There are two main reasons I chose a bit of a hack rather than something like this. 1. I want to apply the patch to non-GPL'ed code (e.g. the jdk16 port). 2. Using updated time zone data is only an option in the port and using something like tz.properties when the option is off is clunky. Thanks to avg@ for sleuth work on finding the bug write up and the IcedTea fix.
Diffstat (limited to 'java')
-rw-r--r--java/openjdk6/Makefile4
-rw-r--r--java/openjdk6/files/patch-ZoneInfoFile.java14
2 files changed, 16 insertions, 2 deletions
diff --git a/java/openjdk6/Makefile b/java/openjdk6/Makefile
index 3a46fcd729b0..242d33b40537 100644
--- a/java/openjdk6/Makefile
+++ b/java/openjdk6/Makefile
@@ -7,7 +7,7 @@
PORTNAME= openjdk6
PORTVERSION= b24
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= java devel
MASTER_SITES= http://download.java.net/openjdk/jdk6/promoted/${PORTVERSION}/ \
http://download.java.net/jaxp/openjdk/jdk6/:jaxp \
@@ -48,7 +48,7 @@ OPTIONS= DEBUG "Enable legacy debugging support" off \
POLICY "Install the Unlimited Strength Policy Files" off \
SOUND "Enable sound support" off \
TEST "Add support for running regression test" off \
- TZUPDATE "Update the time zone data" off
+ TZUPDATE "Update the time zone data" on
# java extracts directly to the cwd
WRKSRC= ${WRKDIR}
diff --git a/java/openjdk6/files/patch-ZoneInfoFile.java b/java/openjdk6/files/patch-ZoneInfoFile.java
new file mode 100644
index 000000000000..ea68672271f2
--- /dev/null
+++ b/java/openjdk6/files/patch-ZoneInfoFile.java
@@ -0,0 +1,14 @@
+$FreeBSD$
+
+--- jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java.orig 2012-05-01 18:59:17.000000000 -0700
++++ jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java 2012-05-01 19:02:16.000000000 -0700
+@@ -476,7 +476,8 @@
+ static {
+ String zi = (String) AccessController.doPrivileged(
+ new sun.security.action.GetPropertyAction("java.home"))
+- + File.separator + "lib" + File.separator + "zi";
++ + File.separator + "lib" + File.separator + "."
++ + File.separator + "zi";
+ try {
+ zi = new File(zi).getCanonicalPath();
+ } catch (Exception e) {