[kaffe] CVS kaffe (dalibor): Partially resynced with GNU Classpath

Kaffe CVS Kaffe Mailing List <kaffe@kaffe.org>
Tue Sep 16 05:38:03 2003


PatchSet 4039 
Date: 2003/09/16 12:35:52
Author: dalibor
Branch: HEAD
Tag: (none) 
Log:
Partially resynced with GNU Classpath

Members: 
	ChangeLog:1.1635->1.1636 
	libraries/javalib/gnu/java/rmi/rmic/Compile_gcj.java:1.1->1.2 
	libraries/javalib/gnu/java/rmi/rmic/Compile_jikes.java:1.1->1.2 
	libraries/javalib/gnu/java/rmi/rmic/Compiler.java:1.1->1.2 
	libraries/javalib/gnu/java/rmi/rmic/CompilerProcess.java:1.1->1.2 
	libraries/javalib/gnu/java/rmi/rmic/RMIC.java:1.1->1.2 
	libraries/javalib/java/awt/BasicStroke.java:1.3->1.4 
	libraries/javalib/java/awt/Color.java:1.14->1.15 
	libraries/javalib/java/security/Policy.java:1.1->1.2 
	libraries/javalib/java/security/acl/Acl.java:1.3->1.4 
	libraries/javalib/java/util/logging/LogManager.java:1.3->1.4 
	libraries/javalib/java/util/logging/Logger.java:1.1->1.2 
	libraries/javalib/java/util/logging/SimpleFormatter.java:1.1->1.2 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.1635 kaffe/ChangeLog:1.1636
--- kaffe/ChangeLog:1.1635	Mon Sep 15 16:43:11 2003
+++ kaffe/ChangeLog	Tue Sep 16 12:35:52 2003
@@ -1,3 +1,21 @@
+2003-09-16  Dalibor Topic <robilad@kaffe.org>
+
+	* libraries/javalib/gnu/java/rmi/rmic/Compile_gcj.java,
+	libraries/javalib/gnu/java/rmi/rmic/Compile_jikes.java,
+	libraries/javalib/gnu/java/rmi/rmic/Compile_kjc.java,
+	libraries/javalib/gnu/java/rmi/rmic/Compiler.java,
+	libraries/javalib/gnu/java/rmi/rmic/CompilerProcess.java,
+	libraries/javalib/gnu/java/rmi/rmic/RMIC.java,
+	libraries/javalib/gnu/java/rmi/rmic/RMICException.java,
+	libraries/javalib/java/awt/BasicStroke.java,
+	libraries/javalib/java/awt/Color.java,
+	libraries/javalib/java/security/acl/Acl.java,
+	libraries/javalib/java/security/Policy.java,
+	libraries/javalib/java/util/logging/LogManager.java,
+	libraries/javalib/java/util/logging/Logger.java,
+	libraries/javalib/java/util/logging/SimpleFormatter.java:
+	Resynced with GNU Classpath.
+	
 2003-09-15  Dalibor Topic <robilad@kaffe.org>
 
 	* developers/check-classpath-merge-status:
Index: kaffe/libraries/javalib/gnu/java/rmi/rmic/Compile_gcj.java
diff -u kaffe/libraries/javalib/gnu/java/rmi/rmic/Compile_gcj.java:1.1 kaffe/libraries/javalib/gnu/java/rmi/rmic/Compile_gcj.java:1.2
--- kaffe/libraries/javalib/gnu/java/rmi/rmic/Compile_gcj.java:1.1	Mon Aug 18 17:40:33 2003
+++ kaffe/libraries/javalib/gnu/java/rmi/rmic/Compile_gcj.java	Tue Sep 16 12:35:53 2003
@@ -1,5 +1,5 @@
 /*
-  Copyright (c) 2001 Free Software Foundation, Inc.
+  Copyright (c) 2001, 2003 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
Index: kaffe/libraries/javalib/gnu/java/rmi/rmic/Compile_jikes.java
diff -u kaffe/libraries/javalib/gnu/java/rmi/rmic/Compile_jikes.java:1.1 kaffe/libraries/javalib/gnu/java/rmi/rmic/Compile_jikes.java:1.2
--- kaffe/libraries/javalib/gnu/java/rmi/rmic/Compile_jikes.java:1.1	Mon Aug 18 17:40:33 2003
+++ kaffe/libraries/javalib/gnu/java/rmi/rmic/Compile_jikes.java	Tue Sep 16 12:35:53 2003
@@ -37,10 +37,10 @@
 
 package gnu.java.rmi.rmic;
 
-/** Subclass of Compiler that can be used to invoke kjc.  */
+/** Subclass of Compiler that can be used to invoke jikes.  */
 public class Compile_jikes extends CompilerProcess
 {
-  /** Compiler arguments to invoke kjc */
+  /** Compiler arguments to invoke jikes */
   private static final String [] COMPILER_ARGS = 
   {
     "jikes"
Index: kaffe/libraries/javalib/gnu/java/rmi/rmic/Compiler.java
diff -u kaffe/libraries/javalib/gnu/java/rmi/rmic/Compiler.java:1.1 kaffe/libraries/javalib/gnu/java/rmi/rmic/Compiler.java:1.2
--- kaffe/libraries/javalib/gnu/java/rmi/rmic/Compiler.java:1.1	Mon Aug 18 17:40:33 2003
+++ kaffe/libraries/javalib/gnu/java/rmi/rmic/Compiler.java	Tue Sep 16 12:35:53 2003
@@ -1,5 +1,5 @@
 /*
-  Copyright (c) 2001 Free Software Foundation, Inc.
+  Copyright (c) 2001, 2003 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -37,10 +37,12 @@
 
 package gnu.java.rmi.rmic;
 
-/** A Compiler object can be used to compile a .java file into a
+/**
+ * A Compiler object can be used to compile a .java file into a
  * .class file.  This is an abstract class; the
  * <code>getInstance()</code> method is used to obtain the actual
- * compiler object.  */
+ * compiler object.
+ */
 public abstract class Compiler
 {
   // Can't directly instantiate.
@@ -68,11 +70,11 @@
     return null;
   }
 
-  /** Get the directory where output files will be put.  */
-  public String getDestination ()
-  {
-    return dest;
-  }
+   /** Get the directory where output files will be put.  */
+   public String getDestination ()
+   {
+     return dest;
+   }
 
   /** Set the directory where output files will be put.  */
   public void setDestination (String dest)
Index: kaffe/libraries/javalib/gnu/java/rmi/rmic/CompilerProcess.java
diff -u kaffe/libraries/javalib/gnu/java/rmi/rmic/CompilerProcess.java:1.1 kaffe/libraries/javalib/gnu/java/rmi/rmic/CompilerProcess.java:1.2
--- kaffe/libraries/javalib/gnu/java/rmi/rmic/CompilerProcess.java:1.1	Mon Aug 18 17:40:33 2003
+++ kaffe/libraries/javalib/gnu/java/rmi/rmic/CompilerProcess.java	Tue Sep 16 12:35:53 2003
@@ -1,5 +1,5 @@
 /*
-  Copyright (c) 2001 Free Software Foundation, Inc.
+  Copyright (c) 2001, 2003 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -39,44 +39,50 @@
 
 import java.io.InputStream;
 
-/** Subclass of Compiler that can be subclassed to invoke a process to
- * do its work.  */
+/**
+ * Subclass of Compiler that can be subclassed to invoke a process to
+ * do its work.
+ */
 public abstract class CompilerProcess extends Compiler
 {
   /** This is used to compute the command line for the process.  */
   public abstract String[] computeArguments (String filename);
 
-  /** This is used to compute the command line for the process.
-   *  Most compilers typically arrange their arguments as in 
-   *  <compiler name and arguments> <optional destination> <filename>.
-   *  This method builds an argument array out that. It should be used
-   * to define computeArguments for those compilers that follow the
-   * argument convention described above.
-   */
-  public static String[] computeTypicalArguments (String[] compilerArgs, String destination, String filename) 
-  {
-    /* length of compiler specific arguments */
-    final int len = compilerArgs.length;
-    /* length of returned array of arguments */
-    final int arglen = len + (destination == null ? 0 : 2) + 1;
-
-    /* Allocate String array for computed arguments. */
-    String [] args = new String[arglen];
-
-    /* Fill in compiler arguments. */
-    System.arraycopy(compilerArgs, 0, args, 0, len);
-
-    /* Fill in destination argument if necessary. */
-    if (destination != null) {
-      args[len] = "-d";
-      args[len + 1] = destination;
-    }
+   /**
+    * This is used to compute the command line for the process.
+    * Most compilers typically arrange their arguments as in
+    * <compiler name and arguments> <optional destination> <filename>.
+    * This method builds an argument array out that. It should be used
+    * to define computeArguments for those compilers that follow the
+    * argument convention described above.
+    */
+   public static String[] computeTypicalArguments(String[] compilerArgs,
+	String destination, String filename)
+   {
+     /* length of compiler specific arguments */
+     final int len = compilerArgs.length;
+
+     /* length of returned array of arguments */
+     final int arglen = len + (destination == null ? 0 : 2) + 1;
+
+     /* Allocate String array for computed arguments. */
+     String [] args = new String[arglen];
+
+     /* Fill in compiler arguments. */
+     System.arraycopy(compilerArgs, 0, args, 0, len);
+
+     /* Fill in destination argument if necessary. */
+     if (destination != null)
+      {
+	args[len] = "-d";
+	args[len + 1] = destination;
+      }
 
-    /* Fill in filename */
-    args[arglen - 1] = filename;
+     /* Fill in filename */
+     args[arglen - 1] = filename;
 
-    return args;
-  }
+     return args;
+   }
 
   public void compile (String name) throws Exception
   {
@@ -85,18 +91,16 @@
 
     /* Print compiler output to System.out. */
     InputStream procin = p.getInputStream();
-    for (int ch = procin.read(); ch != -1; ch = procin.read()) {
-	    System.out.print((char) ch);
-    }
+    for (int ch = procin.read(); ch != -1; ch = procin.read())
+      System.out.print((char) ch);
 
     /* Collect compiler error output in a buffer.
      * If compilation fails, it will be used for an error message.
      */
     StringBuffer stderr = new StringBuffer();
     InputStream procerr = p.getErrorStream();
-    for (int ch = procerr.read(); ch != -1; ch = procerr.read()) {
-	    stderr.append((char) ch);
-    }
+    for (int ch = procerr.read(); ch != -1; ch = procerr.read())
+      stderr.append((char) ch);
 
     int result;
     while (true)
Index: kaffe/libraries/javalib/gnu/java/rmi/rmic/RMIC.java
diff -u kaffe/libraries/javalib/gnu/java/rmi/rmic/RMIC.java:1.1 kaffe/libraries/javalib/gnu/java/rmi/rmic/RMIC.java:1.2
--- kaffe/libraries/javalib/gnu/java/rmi/rmic/RMIC.java:1.1	Mon Aug 18 17:40:33 2003
+++ kaffe/libraries/javalib/gnu/java/rmi/rmic/RMIC.java	Tue Sep 16 12:35:53 2003
@@ -1,5 +1,5 @@
 /*
-  Copyright (c) 1996, 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+  Copyright (c) 1996, 1997, 1998, 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -222,7 +222,7 @@
 	ctrl.indent();
 	out.println("extends java.rmi.server.RemoteStub");
 	
-	// Output interface we implement
+	// Output interfaces we implement
 	out.print("implements ");
 	/* Scan implemented interfaces, and only print remote interfaces. */ 
         Class[] ifaces = clazz.getInterfaces(); 
Index: kaffe/libraries/javalib/java/awt/BasicStroke.java
diff -u kaffe/libraries/javalib/java/awt/BasicStroke.java:1.3 kaffe/libraries/javalib/java/awt/BasicStroke.java:1.4
--- kaffe/libraries/javalib/java/awt/BasicStroke.java:1.3	Wed Sep  3 13:35:02 2003
+++ kaffe/libraries/javalib/java/awt/BasicStroke.java	Tue Sep 16 12:35:54 2003
@@ -77,40 +77,40 @@
   public BasicStroke(float width, int cap, int join, float miterlimit,
                      float[] dash, float dashPhase)
   {
-    if (width < 0.0f ) {
+    if (width < 0.0f )
       throw new IllegalArgumentException("width " + width + " < 0");
-    }
-    else if (cap < CAP_BUTT || cap > CAP_SQUARE) {
-      throw new IllegalArgumentException("cap " + cap + " out of range [" + CAP_BUTT + ".." + CAP_SQUARE + "]");
-    }
-    else if (miterlimit < 1.0f && join == JOIN_MITER) {
-      throw new IllegalArgumentException("miterlimit " + miterlimit + " < 1.0f while join == JOIN_MITER");
-    }
-    else if (join < JOIN_MITER || join > JOIN_BEVEL) {
-      throw new IllegalArgumentException("join " + join + " out of range [" + JOIN_MITER + ".." + JOIN_BEVEL + "]");
-    }
-    else if (dashPhase < 0.0f && dash != null) {
-      throw new IllegalArgumentException("dashPhase " + dashPhase + " < 0.0f while dash != null");
-    }
-    else if (dash != null) {
-      if (dash.length == 0) {
+    else if (cap < CAP_BUTT || cap > CAP_SQUARE)
+      throw new IllegalArgumentException("cap " + cap + " out of range ["
+					 + CAP_BUTT + ".." + CAP_SQUARE + "]");
+    else if (miterlimit < 1.0f && join == JOIN_MITER)
+      throw new IllegalArgumentException("miterlimit " + miterlimit
+					 + " < 1.0f while join == JOIN_MITER");
+    else if (join < JOIN_MITER || join > JOIN_BEVEL)
+      throw new IllegalArgumentException("join " + join + " out of range ["
+					 + JOIN_MITER + ".." + JOIN_BEVEL
+					 + "]");
+    else if (dashPhase < 0.0f && dash != null)
+      throw new IllegalArgumentException("dashPhase " + dashPhase
+					 + " < 0.0f while dash != null");
+    else if (dash != null)
+      if (dash.length == 0)
 	throw new IllegalArgumentException("dash.length is 0");
-      }
-      else {
-	boolean allZero = true;
-
-	for ( int i = 0; i < dash.length; ++i) {
-	  if (dash[i] != 0.0f) {
-	    allZero = false;
-	    break;
-	  }
+      else
+	{
+	  boolean allZero = true;
+	  
+	  for ( int i = 0; i < dash.length; ++i)
+	    {
+	      if (dash[i] != 0.0f)
+		{
+		  allZero = false;
+		  break;
+		}
+	    }
+	  
+	  if (allZero)
+	    throw new IllegalArgumentException("all dashes are 0.0f");
 	}
-
-	if (allZero) {
-	  throw new IllegalArgumentException("all dashes are 0.0f");
-	}
-      }
-    }
 
     this.width = width;
     this.cap = cap;
Index: kaffe/libraries/javalib/java/awt/Color.java
diff -u kaffe/libraries/javalib/java/awt/Color.java:1.14 kaffe/libraries/javalib/java/awt/Color.java:1.15
--- kaffe/libraries/javalib/java/awt/Color.java:1.14	Sat May 17 17:30:10 2003
+++ kaffe/libraries/javalib/java/awt/Color.java	Tue Sep 16 12:35:54 2003
@@ -517,7 +517,7 @@
   public int getAlpha()
   {
     // Do not inline getRGB() to value, because of SystemColor.
-    return (getRGB() & ALPHA_MASK) >> 24;
+    return (getRGB() & ALPHA_MASK) >>> 24;
   }
 
   /**
Index: kaffe/libraries/javalib/java/security/Policy.java
diff -u kaffe/libraries/javalib/java/security/Policy.java:1.1 kaffe/libraries/javalib/java/security/Policy.java:1.2
--- kaffe/libraries/javalib/java/security/Policy.java:1.1	Sat May 31 06:01:16 2003
+++ kaffe/libraries/javalib/java/security/Policy.java	Tue Sep 16 12:35:54 2003
@@ -39,7 +39,7 @@
 
 import java.util.Collections;
 import java.util.Enumeration;
-import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.Map;
 
 /**
@@ -154,7 +154,7 @@
   private static void setup(final Policy policy)
   {
     if (policy.pd2pc == null)
-      policy.pd2pc = Collections.synchronizedMap(new HashMap());
+      policy.pd2pc = Collections.synchronizedMap(new LinkedHashMap());
 
     ProtectionDomain pd = policy.getClass().getProtectionDomain();
     if (pd.getCodeSource() != null)
Index: kaffe/libraries/javalib/java/security/acl/Acl.java
diff -u kaffe/libraries/javalib/java/security/acl/Acl.java:1.3 kaffe/libraries/javalib/java/security/acl/Acl.java:1.4
--- kaffe/libraries/javalib/java/security/acl/Acl.java:1.3	Thu Aug  7 18:36:36 2003
+++ kaffe/libraries/javalib/java/security/acl/Acl.java	Tue Sep 16 12:35:54 2003
@@ -52,7 +52,7 @@
  * <code>Principal</code> belongs have an ACL entry, the permissions for
  * the individual <code>Principal</code> take precedence over the 
  * permissions of the <code>Group</code> if there is a conflict.
- * <p
+ * <p>
  * Additionally, the ACL interface extends the <code>Owner</code> interface
  * and so an ACL has owners.  Actions which modify the ACL are restricted
  * to owners.
Index: kaffe/libraries/javalib/java/util/logging/LogManager.java
diff -u kaffe/libraries/javalib/java/util/logging/LogManager.java:1.3 kaffe/libraries/javalib/java/util/logging/LogManager.java:1.4
--- kaffe/libraries/javalib/java/util/logging/LogManager.java:1.3	Sun Jan 12 19:56:23 2003
+++ kaffe/libraries/javalib/java/util/logging/LogManager.java	Tue Sep 16 12:35:55 2003
@@ -52,6 +52,7 @@
 import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.StringTokenizer;
 import java.lang.ref.WeakReference;
 
 /**
@@ -167,6 +168,7 @@
      * the order in which classes are initialized.
      */
     Logger.getLogger("global").setParent(rootLogger);
+    Logger.getLogger("global").setUseParentHandlers(true);
   }
 
 
@@ -520,7 +522,7 @@
 
   public synchronized void readConfiguration(InputStream inputStream)
     throws IOException, SecurityException
-  {
+  {	
     Properties   newProperties;
     Enumeration  keys;
 
@@ -532,12 +534,36 @@
 
     while (keys.hasMoreElements())
     {
-      String key = (String) keys.nextElement();
+      String key = ((String) keys.nextElement()).trim();
       String value = newProperties.getProperty(key);
-
+  
       if (value == null)
 	continue;
-
+	
+	  value = value.trim();
+	
+	  if("handlers".equals(key))
+        {
+          StringTokenizer tokenizer = new StringTokenizer(value);
+          while(tokenizer.hasMoreTokens())
+            {
+              String handlerName = tokenizer.nextToken();	
+              try
+                {
+              	  Class handlerClass = Class.forName(handlerName);
+              	  getLogger("").addHandler((Handler)handlerClass.newInstance()); 
+                }
+              catch (ClassCastException ex)
+                {
+                  System.err.println("[LogManager] class " + handlerName + " is not subclass of java.util.logging.Handler");
+                }
+              catch (Exception ex)
+                {
+                  //System.out.println("[LogManager.readConfiguration]"+ex);
+                }
+            }
+        }
+	  
       if (key.endsWith(".level"))
       {
 	String loggerName = key.substring(0, key.length() - 6);
@@ -550,6 +576,7 @@
 	  }
 	  catch (Exception _)
 	  {
+        //System.out.println("[LogManager.readConfiguration] "+_);
 	  }
 	  continue;
 	}
Index: kaffe/libraries/javalib/java/util/logging/Logger.java
diff -u kaffe/libraries/javalib/java/util/logging/Logger.java:1.1 kaffe/libraries/javalib/java/util/logging/Logger.java:1.2
--- kaffe/libraries/javalib/java/util/logging/Logger.java:1.1	Mon Nov 11 12:01:53 2002
+++ kaffe/libraries/javalib/java/util/logging/Logger.java	Tue Sep 16 12:35:55 2003
@@ -589,9 +589,10 @@
 			       String message,
 			       Object param)
   {
+  	StackTraceElement caller = getCallerStackFrame();
     logp(level,
-	 /* sourceClass*/ null,
-	 /* sourceMethod */ null,
+	 caller.getClassName(),
+	 caller.getMethodName(),
 	 message,
 	 param);
   }
@@ -601,9 +602,10 @@
 			       String message,
 			       Object[] params)
   {
+    StackTraceElement caller = getCallerStackFrame();
     logp(level,
-	 /* sourceClass*/ null,
-	 /* sourceMethod */ null,
+	 caller.getClassName(),
+	 caller.getMethodName(),
 	 message,
 	 params);
   }
@@ -613,9 +615,10 @@
 			       String message,
 			       Throwable thrown)
   {
+	StackTraceElement caller = getCallerStackFrame();    
     logp(level,
-	 /* sourceClass*/ null,
-	 /* sourceMethod */ null,
+	 caller.getClassName(),
+	 caller.getMethodName(),
 	 message,
 	 thrown);
   }
@@ -1164,4 +1167,23 @@
 
     this.parent = parent;
   }
+  
+  /**
+   * Gets the StackTraceElement of the first class that is not this class.
+   * That should be the initial caller of a logging method.
+   * @return caller of the initial looging method
+   */
+  private StackTraceElement getCallerStackFrame()
+  {
+    Throwable t = new Throwable();
+    StackTraceElement[] stackTrace = t.getStackTrace();
+    int index = 0;
+    // skip to stackentries until this class
+    while(!stackTrace[index].getClassName().equals(getClass().getName())){index++;}
+    // skip the stackentries of this class
+    while(stackTrace[index].getClassName().equals(getClass().getName())){index++;}
+
+    return stackTrace[index];
+  }
+  
 }
Index: kaffe/libraries/javalib/java/util/logging/SimpleFormatter.java
diff -u kaffe/libraries/javalib/java/util/logging/SimpleFormatter.java:1.1 kaffe/libraries/javalib/java/util/logging/SimpleFormatter.java:1.2
--- kaffe/libraries/javalib/java/util/logging/SimpleFormatter.java:1.1	Mon Nov 11 12:01:53 2002
+++ kaffe/libraries/javalib/java/util/logging/SimpleFormatter.java	Tue Sep 16 12:35:55 2003
@@ -106,7 +106,9 @@
 
     buf.append(dateFormat.format(new Date(record.getMillis())));
     buf.append(' ');
-    buf.append(record.getLoggerName());
+    buf.append(record.getSourceClassName());
+    buf.append(' ');
+    buf.append(record.getSourceMethodName());
     buf.append(lineSep);
 
     buf.append(record.getLevel());