aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ajde/src/org/aspectj/ajde/ui/swing/OptionsFrame.java2
-rw-r--r--bridge/src/org/aspectj/bridge/Version.java27
-rw-r--r--bridge/testsrc/org/aspectj/bridge/VersionTest.java2
-rw-r--r--weaver/src/org/aspectj/weaver/AjAttribute.java2
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 {