From 40cf61076994bf2dd6f0397b1bd0287ed546a75b Mon Sep 17 00:00:00 2001 From: aclement Date: Fri, 25 Aug 2006 12:41:38 +0000 Subject: [PATCH] fix for 155213: made using date formatter lazy. --- .../aspectj/ajde/ui/swing/OptionsFrame.java | 2 +- bridge/src/org/aspectj/bridge/Version.java | 27 ++++++++++--------- .../org/aspectj/bridge/VersionTest.java | 2 +- .../src/org/aspectj/weaver/AjAttribute.java | 2 +- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/ajde/src/org/aspectj/ajde/ui/swing/OptionsFrame.java b/ajde/src/org/aspectj/ajde/ui/swing/OptionsFrame.java index e6d6879ba..b1c210f7d 100644 --- a/ajde/src/org/aspectj/ajde/ui/swing/OptionsFrame.java +++ b/ajde/src/org/aspectj/ajde/ui/swing/OptionsFrame.java @@ -111,7 +111,7 @@ public class OptionsFrame extends JFrame { this.setLocation(200, 100); version_label.setText("Version: " + Version.text); - built_label.setText("Built: " + new Date(Version.time).toString()); + built_label.setText("Built: " + new Date(Version.getTime()).toString()); addOptionsPanel(new BuildOptionsPanel()); loadOptions(); diff --git a/bridge/src/org/aspectj/bridge/Version.java b/bridge/src/org/aspectj/bridge/Version.java index c08d24f60..028cdd96d 100644 --- a/bridge/src/org/aspectj/bridge/Version.java +++ b/bridge/src/org/aspectj/bridge/Version.java @@ -43,22 +43,25 @@ public class Version { * time in seconds-since-... format, used by programmatic clients. * (if DEVELOPMENT version, NOTIME) */ - public static final long time; + private static long time = -1; // -1 = uninitialized /** format used by build script to set time_text */ public static final String SIMPLE_DATE_FORMAT = "EEEE MMM d, yyyy 'at' HH:mm:ss z"; - // if not DEVELOPMENT version, read time text using format used to set time - static { - long foundTime = NOTIME; - try { - SimpleDateFormat format = new SimpleDateFormat(SIMPLE_DATE_FORMAT); - ParsePosition pos = new ParsePosition(0); - Date date = format.parse(time_text, pos); - foundTime = date.getTime(); - } catch (Throwable t) { - } - time = foundTime; + public static long getTime() { + if (time==-1) { + long foundTime = NOTIME; + // if not DEVELOPMENT version, read time text using format used to set time + try { + SimpleDateFormat format = new SimpleDateFormat(SIMPLE_DATE_FORMAT); + ParsePosition pos = new ParsePosition(0); + Date date = format.parse(time_text, pos); + if (date!=null) foundTime = date.getTime(); + } catch (Throwable t) { + } + time = foundTime; + } + return time; } /** diff --git a/bridge/testsrc/org/aspectj/bridge/VersionTest.java b/bridge/testsrc/org/aspectj/bridge/VersionTest.java index 6339a1633..1da10675c 100644 --- a/bridge/testsrc/org/aspectj/bridge/VersionTest.java +++ b/bridge/testsrc/org/aspectj/bridge/VersionTest.java @@ -44,7 +44,7 @@ public class VersionTest extends TestCase { public void testVersion() { if (Version.time_text.equals("")) return; // dev build, we can only test this on the build server. - Date date = new Date(Version.time); + Date date = new Date(Version.getTime()); SimpleDateFormat format = new SimpleDateFormat(Version.SIMPLE_DATE_FORMAT, Locale.getDefault()); format.setTimeZone(TimeZone.getTimeZone("GMT")); String timeString = format.format(date); diff --git a/weaver/src/org/aspectj/weaver/AjAttribute.java b/weaver/src/org/aspectj/weaver/AjAttribute.java index 6a7ff1ced..a1fc5fcc4 100644 --- a/weaver/src/org/aspectj/weaver/AjAttribute.java +++ b/weaver/src/org/aspectj/weaver/AjAttribute.java @@ -247,7 +247,7 @@ public abstract class AjAttribute { public void write(DataOutputStream s) throws IOException { s.writeShort(CURRENT_VERSION_MAJOR); s.writeShort(CURRENT_VERSION_MINOR); - s.writeLong(Version.time); // build used to construct the class... + s.writeLong(Version.getTime()); // build used to construct the class... } public static WeaverVersionInfo read(VersionedDataInputStream s) throws IOException { -- 2.39.5