System.java (properties): Make package private.
authorMark Wielaard <mark@klomp.org>
Sun, 26 Sep 2004 17:11:14 +0000 (17:11 +0000)
committerMark Wielaard <mark@gcc.gnu.org>
Sun, 26 Sep 2004 17:11:14 +0000 (17:11 +0000)
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

libjava/ChangeLog
libjava/java/lang/System.java
libjava/java/lang/Throwable.java

index b2c70bcf158ef657a8de3ca1a1c13e1f62e7311a..3bf4f1d1e1a73879146d36f4f47d013e4cce3944 100644 (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
index 13926b156b55c9ce1be4e0da430f4972ec676f3c..68add349dc3131b3c52399e34c6a445be258dc4e 100644 (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();
 
   /**
index 1f236b085ed50078520260e10bb427d0d4376c6d..5d29684fb99c44f5612605a5b487395373c5af3d 100644 (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);