diff options
author | Bryce McKinlay <bryce@gcc.gnu.org> | 2000-11-26 01:48:04 +0000 |
---|---|---|
committer | Bryce McKinlay <bryce@gcc.gnu.org> | 2000-11-26 01:48:04 +0000 |
commit | 213858c013438c43989052d3f86fb93b2e9b274a (patch) | |
tree | 4eaca964f2a13f025b0393ee000372ef3380e323 /libjava/java/lang/System.java | |
parent | 3645c4dc1cf004887905411ca81590b75c665529 (diff) | |
download | gcc-213858c013438c43989052d3f86fb93b2e9b274a.zip gcc-213858c013438c43989052d3f86fb93b2e9b274a.tar.gz gcc-213858c013438c43989052d3f86fb93b2e9b274a.tar.bz2 |
System.java (setProperties): Only call init_properties() if properties is null.
2000-11-24 Bryce McKinlay <bryce@albatross.co.nz>
* java/lang/System.java (setProperties): Only call init_properties()
if properties is null.
(getProperties): Ditto.
(getProperty): Ditto.
(setProperty): Call init_properties if properties are null.
(prop_init): Remove field.
* java/lang/natSystem.cc (init_properties): Synchronize the entire
method. Check for null properties after synchronizing instead of
prop_init flag. Set the properties field last for thread safety.
* java/io/ObjectInputStream.java (ObjectInputStream): If DEBUG is set,
test for gcj.dumpobjects property and enable object stream dumping
if it is set.
(dumpElement): No longer native.
(dumpElementln): Ditto.
(setDump): Do not define.
* java/io/natObjectInputStream.cc (dumpElement): Removed.
(dumpElementln): Removed.
(setDump): Removed.
2000-11-24 Bryce McKinlay <bryce@albatross.co.nz>
* configure: Rebuilt.
* Makefile.in: Rebuilt.
* Makefile.am (built_java_source_files): Add Configuration.java.
* configure.in: Add Configuration.java to CONFIG_FILES. Set
LIBGCJDEBUG substitution if --enable-libgcj-debug is specified.
Create `gnu' directory in the build tree.
* gnu/classpath/Configuration.java.in: New file.
From-SVN: r37749
Diffstat (limited to 'libjava/java/lang/System.java')
-rw-r--r-- | libjava/java/lang/System.java | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/libjava/java/lang/System.java b/libjava/java/lang/System.java index 52dbe75..59787099 100644 --- a/libjava/java/lang/System.java +++ b/libjava/java/lang/System.java @@ -63,7 +63,8 @@ public final class System { if (secman != null) secman.checkPropertiesAccess(); - init_properties (); + if (properties == null) + init_properties (); return properties; } @@ -71,7 +72,8 @@ public final class System { if (secman != null) secman.checkPropertyAccess(property); - init_properties (); + if (properties == null) + init_properties (); return properties.getProperty(property); } @@ -79,7 +81,8 @@ public final class System { if (secman != null) secman.checkPropertyAccess(property, defval); - init_properties (); + if (properties == null) + init_properties (); return properties.getProperty(property, defval); } @@ -128,15 +131,18 @@ public final class System { if (secman != null) secman.checkPropertiesAccess(); - // We might not have initialized yet. - prop_init = true; - properties = props; + synchronized (System.class) + { + properties = props; + } } public static String setProperty (String key, String value) { if (secman != null) secman.checkPermission (new PropertyPermission (key, "write")); + if (properties == null) + init_properties (); return (String) properties.setProperty (key, value); } @@ -165,7 +171,4 @@ public final class System // Private data. private static SecurityManager secman = null; private static Properties properties = null; - // This boolean is only required for 1.1 and earlier. After 1.1, a - // null properties should always be re-initialized. - private static boolean prop_init = false; } |