System.java (properties): Make package private.

2004-09-26  Mark Wielaard  <mark@klomp.org>

       * java/lang/System.java (properties): Make package private.
       * java/lang/Throwable.java (StaticData.nl): Initialize through
       directly accessing System.properties.getProperty().

       * java/lang/Throwable.java (nl): Remove static field.
       (StaticData): New private static inner class.
       (stackTraceStringBuffer): Use StaticData.nl.

From-SVN: r88133
This commit is contained in:
Mark Wielaard 2004-09-26 17:11:14 +00:00 committed by Mark Wielaard
parent 54df0e3ead
commit 3bd2680ed5
3 changed files with 28 additions and 3 deletions

View File

@ -1,3 +1,13 @@
2004-09-26 Mark Wielaard <mark@klomp.org>
* java/lang/System.java (properties): Make package private.
* java/lang/Throwable.java (StaticData.nl): Initialize through
directly accessing System.properties.getProperty().
* java/lang/Throwable.java (nl): Remove static field.
(StaticData): New private static inner class.
(stackTraceStringBuffer): Use StaticData.nl.
2004-09-26 Casey Marshall <csm@gnu.org>
* java/security/ProtectionDomain.java

View File

@ -133,7 +133,7 @@ public final class System
*/
// Note that we use clone here and not new. Some programs assume
// that the system properties do not have a parent.
private static Properties properties
static Properties properties
= (Properties) Runtime.defaultProperties.clone();
/**

View File

@ -1,5 +1,5 @@
/* java.lang.Throwable -- Root class for all Exceptions and Errors
Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -396,7 +396,21 @@ public class Throwable implements Serializable
pw.print(stackTraceString());
}
private static final String nl = System.getProperty("line.separator");
/*
* We use inner class to avoid a static initializer in this basic class.
*/
private static class StaticData
{
final static String nl;
static
{
// Access package private properties field to prevent Security check.
nl = System.properties.getProperty("line.separator");
}
}
// Create whole stack trace in a stringbuffer so we don't have to print
// it line by line. This prevents printing multiple stack traces from
// different threads to get mixed up when written to the same PrintWriter.
@ -449,6 +463,7 @@ public class Throwable implements Serializable
private static void stackTraceStringBuffer(StringBuffer sb, String name,
StackTraceElement[] stack, int equal)
{
String nl = StaticData.nl;
// (finish) first line
sb.append(name);
sb.append(nl);