aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang/System.java
diff options
context:
space:
mode:
authorBryce McKinlay <bryce@gcc.gnu.org>2000-11-26 01:48:04 +0000
committerBryce McKinlay <bryce@gcc.gnu.org>2000-11-26 01:48:04 +0000
commit213858c013438c43989052d3f86fb93b2e9b274a (patch)
tree4eaca964f2a13f025b0393ee000372ef3380e323 /libjava/java/lang/System.java
parent3645c4dc1cf004887905411ca81590b75c665529 (diff)
downloadgcc-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.java21
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;
}