Imported GNU Classpath 0.90

Imported GNU Classpath 0.90
       * scripts/makemake.tcl: LocaleData.java moved to gnu/java/locale.

       * sources.am: Regenerated.
       * gcj/javaprims.h: Regenerated.
       * Makefile.in: Regenerated.
       * gcj/Makefile.in: Regenerated.
       * include/Makefile.in: Regenerated.
       * testsuite/Makefile.in: Regenerated.

       * gnu/java/lang/VMInstrumentationImpl.java: New override.
       * gnu/java/net/local/LocalSocketImpl.java: Likewise.
       * gnu/classpath/jdwp/VMMethod.java: Likewise.
       * gnu/classpath/jdwp/VMVirtualMachine.java: Update to latest
       interface.
       * java/lang/Thread.java: Add UncaughtExceptionHandler.
       * java/lang/reflect/Method.java: Implements GenericDeclaration and
       isSynthetic(),
       * java/lang/reflect/Field.java: Likewise.
       * java/lang/reflect/Constructor.java
       * java/lang/Class.java: Implements Type, GenericDeclaration,
       getSimpleName() and getEnclosing*() methods.
       * java/lang/Class.h: Add new public methods.
       * java/lang/Math.java: Add signum(), ulp() and log10().
       * java/lang/natMath.cc (log10): New function.
       * java/security/VMSecureRandom.java: New override.
       * java/util/logging/Logger.java: Updated to latest classpath
       version.
       * java/util/logging/LogManager.java: New override.

From-SVN: r113887
This commit is contained in:
Mark Wielaard 2006-05-18 17:29:21 +00:00
parent eaec4980e1
commit 4f9533c772
1640 changed files with 126485 additions and 104808 deletions

View file

@ -1,5 +1,5 @@
/* Logger.java -- a class for logging messages
Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
Copyright (C) 2002, 2004, 2006 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -41,6 +41,8 @@ package java.util.logging;
import java.util.List;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import java.security.AccessController;
import java.security.PrivilegedAction;
/**
* A Logger is used for logging information about events. Usually, there
@ -67,13 +69,29 @@ import java.util.ResourceBundle;
*/
public class Logger
{
static final Logger root = new Logger("", null);
/**
* A logger provided to applications that make only occasional use
* of the logging framework, typically early prototypes. Serious
* products are supposed to create and use their own Loggers, so
* they can be controlled individually.
*/
public static final Logger global = getLogger("global");
public static final Logger global;
static
{
// Our class might be initialized from an unprivileged context
global = (Logger) AccessController.doPrivileged
(new PrivilegedAction()
{
public Object run()
{
return getLogger("global");
}
});
}
/**
@ -175,7 +193,7 @@ public class Logger
/* This is null when the root logger is being constructed,
* and the root logger afterwards.
*/
parent = LogManager.getLogManager().rootLogger;
parent = root;
useParentHandlers = (parent != null);
}
@ -577,7 +595,8 @@ public class Logger
public void log(Level level, String message)
{
log(level, message, (Object[]) null);
if (isLoggable(level))
log(level, message, (Object[]) null);
}
@ -585,12 +604,15 @@ public class Logger
String message,
Object param)
{
StackTraceElement caller = getCallerStackFrame();
logp(level,
caller.getClassName(),
caller.getMethodName(),
message,
param);
if (isLoggable(level))
{
StackTraceElement caller = getCallerStackFrame();
logp(level,
caller != null ? caller.getClassName() : "<unknown>",
caller != null ? caller.getMethodName() : "<unknown>",
message,
param);
}
}
@ -598,12 +620,15 @@ public class Logger
String message,
Object[] params)
{
StackTraceElement caller = getCallerStackFrame();
logp(level,
caller.getClassName(),
caller.getMethodName(),
message,
params);
if (isLoggable(level))
{
StackTraceElement caller = getCallerStackFrame();
logp(level,
caller != null ? caller.getClassName() : "<unknown>",
caller != null ? caller.getMethodName() : "<unknown>",
message,
params);
}
}
@ -611,12 +636,15 @@ public class Logger
String message,
Throwable thrown)
{
StackTraceElement caller = getCallerStackFrame();
logp(level,
caller.getClassName(),
caller.getMethodName(),
message,
thrown);
if (isLoggable(level))
{
StackTraceElement caller = getCallerStackFrame();
logp(level,
caller != null ? caller.getClassName() : "<unknown>",
caller != null ? caller.getMethodName() : "<unknown>",
message,
thrown);
}
}
@ -1138,21 +1166,12 @@ public class Logger
*/
public synchronized void setParent(Logger parent)
{
LogManager lm;
/* Throw a new NullPointerException if parent is null. */
parent.getClass();
lm = LogManager.getLogManager();
if (this == lm.rootLogger)
{
if (parent != null)
if (this == root)
throw new IllegalArgumentException(
"only the root logger can have a null parent");
this.parent = null;
return;
}
"the root logger can only have a null parent");
/* An application is allowed to control an anonymous logger
* without having the permission to control the logging
@ -1167,13 +1186,13 @@ public class Logger
/**
* 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
* @return caller of the initial logging method or null if unknown.
*/
private native StackTraceElement getCallerStackFrame();
/**
* Reset and close handlers attached to this logger. This function is package
* private because it must only be available to the LogManager.
* private because it must only be avaiable to the LogManager.
*/
void resetLogger()
{