This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
Patch: FYI: more merges
- From: Tom Tromey <tromey at redhat dot com>
- To: GCJ-patches <java-patches at gcc dot gnu dot org>
- Date: 01 Feb 2007 12:24:12 -0700
- Subject: Patch: FYI: more merges
- Reply-to: tromey at redhat dot com
I'm checking this in on the trunk and the RH 4.1 branch.
This merges a few more classes with Classpath. I think I got them all
but it is hard to be sure... we still have *way* too many divergences.
I noticed today that ProcessBuilder is broken in libgcj. I think this
was a "temporary" merge artifact. Ugh.
This patch also fixes a buglet in LogManager. I put the fix in the
upstream Classpath, but I didn't bother putting it in our local copy,
as that is not used.
Tom
Index: ChangeLog
from Tom Tromey <tromey@redhat.com>
* java/util/logging/LogManager.java (loggers): Genericized.
(addLogger): Merged.
(findAncestor): Likewise.
(getLogger): Likewise.
(getLoggerNames): Genericized.
(reset): Merged.
(getLevelProperty): Likewise.
* java/lang/reflect/Method.java (getDeclaringClass): Genericized.
* java/lang/reflect/Constructor.java (getParameterTypes):
Genericized.
(getExceptionTypes): Likewise.
(newInstance): Likewise.
* java/lang/reflect/Array.java (newInstance): Genericized.
* java/lang/Object.java (getClass): Genericized.
* java/nio/charset/spi/CharsetProvider.java (charsets):
Genericized.
* java/text/Collator.java: Implement Comparable<Object>.
Index: java/lang/Object.java
===================================================================
--- java/lang/Object.java (revision 121470)
+++ java/lang/Object.java (working copy)
@@ -1,5 +1,5 @@
/* java.lang.Object - The universal superclass in Java
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2007
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -129,7 +129,7 @@
*
* @return the class of this Object
*/
- public final native Class getClass();
+ public final native Class<? extends Object> getClass();
/**
* Get a value that represents this Object, as uniquely as
Index: java/lang/reflect/Array.java
===================================================================
--- java/lang/reflect/Array.java (revision 121470)
+++ java/lang/reflect/Array.java (working copy)
@@ -1,5 +1,5 @@
/* java.lang.reflect.Array - manipulate arrays by reflection
- Copyright (C) 1998, 1999, 2001, 2003, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2003, 2005, 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -104,7 +104,7 @@
* @throws NegativeArraySizeException when length is less than 0
* @throws OutOfMemoryError if memory allocation fails
*/
- public static native Object newInstance(Class componentType, int length);
+ public static native Object newInstance(Class<?> componentType, int length);
/**
* Creates a new multi-dimensioned array. The new array has the same
@@ -130,7 +130,7 @@
* than 0
* @throws OutOfMemoryError if memory allocation fails
*/
- public static native Object newInstance(Class elementType, int[] dimensions);
+ public static native Object newInstance(Class<?> elementType, int[] dimensions);
/**
* Gets the array length.
Index: java/lang/reflect/Method.java
===================================================================
--- java/lang/reflect/Method.java (revision 121470)
+++ java/lang/reflect/Method.java (working copy)
@@ -1,6 +1,6 @@
// Method.java - Represent method of class or interface.
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006, 2007 Free Software Foundation
This file is part of libgcj.
@@ -68,7 +68,7 @@
* is a non-inherited member.
* @return the class that declared this member
*/
- public Class getDeclaringClass()
+ public Class<?> getDeclaringClass()
{
return declaringClass;
}
Index: java/lang/reflect/Constructor.java
===================================================================
--- java/lang/reflect/Constructor.java (revision 121470)
+++ java/lang/reflect/Constructor.java (working copy)
@@ -1,5 +1,5 @@
/* java.lang.reflect.Constructor - reflection of Java constructors
- Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006
+ Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -155,11 +155,11 @@
*
* @return a list of the types of the constructor's parameters
*/
- public Class[] getParameterTypes ()
+ public Class<?>[] getParameterTypes ()
{
if (parameter_types == null)
getType ();
- return (Class[]) parameter_types.clone();
+ return (Class<?>[]) parameter_types.clone();
}
/**
@@ -169,11 +169,11 @@
*
* @return a list of the types in the constructor's throws clause
*/
- public Class[] getExceptionTypes ()
+ public Class<?>[] getExceptionTypes ()
{
if (exception_types == null)
getType();
- return (Class[]) exception_types.clone();
+ return (Class<?>[]) exception_types.clone();
}
/**
@@ -305,7 +305,7 @@
* @throws ExceptionInInitializerError if construction triggered class
* initialization, which then failed
*/
- public native Object newInstance (Object[] args)
+ public native T newInstance (Object... args)
throws InstantiationException, IllegalAccessException,
IllegalArgumentException, InvocationTargetException;
Index: java/text/Collator.java
===================================================================
--- java/text/Collator.java (revision 121470)
+++ java/text/Collator.java (working copy)
@@ -1,5 +1,5 @@
/* Collator.java -- Perform locale dependent String comparisons.
- Copyright (C) 1998, 1999, 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2004, 2005, 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -68,11 +68,7 @@
* @author Aaron M. Renn (arenn@urbanophile.com)
* @date March 18, 1999
*/
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 from http://www.javasoft.com.
- * Status: Mostly complete, but parts stubbed out. Look for FIXME.
- */
-public abstract class Collator implements Comparator, Cloneable
+public abstract class Collator implements Comparator<Object>, Cloneable
{
/**
* This constant is a strength value which indicates that only primary
@@ -292,7 +288,7 @@
* specified locale. If no <code>Collator</code> exists for the desired
* locale, a <code>Collator</code> for the default locale will be returned.
*
- * @param loc The desired localed to load a <code>Collator</code> for.
+ * @param loc The desired locale to load a <code>Collator</code> for.
*
* @return A <code>Collator</code> for the requested locale
*/
Index: java/nio/charset/spi/CharsetProvider.java
===================================================================
--- java/nio/charset/spi/CharsetProvider.java (revision 121470)
+++ java/nio/charset/spi/CharsetProvider.java (working copy)
@@ -1,5 +1,5 @@
/* CharsetProvider.java -- charset service provider interface
- Copyright (C) 2002, 2006 Free Software Foundation
+ Copyright (C) 2002, 2006, 2007 Free Software Foundation
This file is part of GNU Classpath.
@@ -83,7 +83,7 @@
* @return the iterator
* @see Charset#availableCharsets()
*/
- public abstract Iterator charsets();
+ public abstract Iterator<Charset> charsets();
/**
* Returns the named charset, by canonical name or alias.
Index: java/util/logging/LogManager.java
===================================================================
--- java/util/logging/LogManager.java (revision 121470)
+++ java/util/logging/LogManager.java (working copy)
@@ -1,6 +1,6 @@
/* LogManager.java -- a class for maintaining Loggers and managing
configuration properties
- Copyright (C) 2002, 2005, 2006 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005, 2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -129,7 +129,7 @@
* The registered named loggers; maps the name of a Logger to
* a WeakReference to it.
*/
- private Map loggers;
+ private Map<String, WeakReference<Logger>> loggers;
/**
* The properties for the logging framework which have been
@@ -269,7 +269,7 @@
*/
name = logger.getName();
- ref = (WeakReference) loggers.get(name);
+ ref = loggers.get(name);
if (ref != null)
{
if (ref.get() != null)
@@ -286,7 +286,7 @@
checkAccess();
Logger parent = findAncestor(logger);
- loggers.put(name, new WeakReference(logger));
+ loggers.put(name, new WeakReference<Logger>(logger));
if (parent != logger.getParent())
logger.setParent(parent);
@@ -362,15 +362,13 @@
int bestNameLength = 0;
Logger cand;
- String candName;
int candNameLength;
if (child == Logger.root)
return null;
- for (Iterator iter = loggers.keySet().iterator(); iter.hasNext();)
+ for (String candName : loggers.keySet())
{
- candName = (String) iter.next();
candNameLength = candName.length();
if (candNameLength > bestNameLength
@@ -378,7 +376,7 @@
&& childName.startsWith(candName)
&& childName.charAt(candNameLength) == '.')
{
- cand = (Logger) ((WeakReference) loggers.get(candName)).get();
+ cand = loggers.get(candName).get();
if ((cand == null) || (cand == child))
continue;
@@ -403,14 +401,14 @@
*/
public synchronized Logger getLogger(String name)
{
- WeakReference ref;
+ WeakReference<Logger> ref;
/* Throw a NullPointerException if name is null. */
name.getClass();
- ref = (WeakReference) loggers.get(name);
+ ref = loggers.get(name);
if (ref != null)
- return (Logger) ref.get();
+ return ref.get();
else
return null;
}
@@ -423,7 +421,7 @@
* @return an Enumeration with the names of the currently
* registered Loggers.
*/
- public synchronized Enumeration getLoggerNames()
+ public synchronized Enumeration<String> getLoggerNames()
{
return Collections.enumeration(loggers.keySet());
}
@@ -446,16 +444,16 @@
properties = new Properties();
- Iterator iter = loggers.values().iterator();
+ Iterator<WeakReference<Logger>> iter = loggers.values().iterator();
while (iter.hasNext())
{
- WeakReference ref;
+ WeakReference<Logger> ref;
Logger logger;
- ref = (WeakReference) iter.next();
+ ref = iter.next();
if (ref != null)
{
- logger = (Logger) ref.get();
+ logger = ref.get();
if (logger == null)
iter.remove();
@@ -710,7 +708,11 @@
{
try
{
- return Level.parse(getLogManager().getProperty(propertyName));
+ String value = getLogManager().getProperty(propertyName);
+ if (value != null)
+ return Level.parse(getLogManager().getProperty(propertyName));
+ else
+ return defaultValue;
}
catch (Exception ex)
{