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
This commit is contained in:
Bryce McKinlay 2000-11-26 01:48:04 +00:00
parent 3645c4dc1c
commit 213858c013
9 changed files with 370 additions and 373 deletions

View file

@ -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;
}