Index: java/lang/ClassLoader.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/lang/ClassLoader.java,v retrieving revision 1.28 diff -u -r1.28 ClassLoader.java --- java/lang/ClassLoader.java 24 Sep 2003 22:23:26 -0000 1.28 +++ java/lang/ClassLoader.java 12 Apr 2004 14:32:03 -0000 @@ -249,7 +249,7 @@ * it. Calls loadClass(name, false). * *

Subclasses should not override this method but should override - * findClass() which is called by this method. + * findClass() which is called by this method.

* * @param name the name of the class relative to this ClassLoader * @return the loaded class @@ -266,14 +266,14 @@ * out if the class has already been loaded through this classloader by * calling findLoadedClass(). Then it calls * loadClass() on the parent classloader (or when there is - * no parent it uses the VM bootclassloader)). If the class is still + * no parent it uses the VM bootclassloader). If the class is still * not loaded it tries to create a new class by calling * findClass(). Finally when resolve is * true it also calls resolveClass() on the * newly loaded class. * *

Subclasses should not override this method but should override - * findClass() which is called by this method. + * findClass() which is called by this method.

* * @param name the fully qualified name of the class to load * @param resolve whether or not to resolve the class @@ -384,7 +384,7 @@ * findClass() implementation. The name should use '.' * separators, and discard the trailing ".class". The default protection * domain has the permissions of - * Policy.getPolicy().getPermissions(new CodeSource(null, null)). + * Policy.getPolicy().getPermissions(new CodeSource(null, null)). * * @param name the name to give the class, or null if unknown * @param data the data representing the classfile, in classfile format @@ -407,7 +407,7 @@ * Helper to define a class using a string of bytes. Subclasses should call * this method from their findClass() implementation. If the * domain is null, the default of - * Policy.getPolicy().getPermissions(new CodeSource(null, null)) + * Policy.getPolicy().getPermissions(new CodeSource(null, null)) * is used. Once a class has been defined in a package, all further classes * in that package must have the same set of certificates or a * SecurityException is thrown. @@ -554,13 +554,13 @@ * multiple resources with the same name that come from multiple locations. * It can also occur that a parent classloader offers a resource with a * certain name and the child classloader also offers a resource with that - * same name. getResource() only offers the first resource (of the + * same name. getResource() only offers the first resource (of the * parent) with a given name. This method lists all resources with the * same name. The name should use '/' as path separators. * *

The Enumeration is created by first calling getResources() * on the parent classloader and then calling findResources() - * on this classloader. + * on this classloader.

* * @param name the resource name * @return an enumaration of all resources found Index: java/lang/Compiler.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/lang/Compiler.java,v retrieving revision 1.6 diff -u -r1.6 Compiler.java --- java/lang/Compiler.java 20 Mar 2002 20:04:32 -0000 1.6 +++ java/lang/Compiler.java 12 Apr 2004 14:32:03 -0000 @@ -81,7 +81,7 @@ } /** - * Compile the classes whose name matches classNames/code>. + * Compile the classes whose name matches classNames. * * @param classNames the name of classes to compile * @return false if no compiler is available or Index: java/lang/Double.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/lang/Double.java,v retrieving revision 1.32 diff -u -r1.32 Double.java --- java/lang/Double.java 16 Jul 2003 12:21:07 -0000 1.32 +++ java/lang/Double.java 12 Apr 2004 14:32:04 -0000 @@ -392,9 +392,9 @@ * Double.NaN as equal, but treats 0.0 and * -0.0 as unequal. * - *

Note that d1.equals(d2) is identical to + *

Note that d1.equals(d2) is identical to * doubleToLongBits(d1.doubleValue()) == - * doubleToLongBits(d2.doubleValue()). + * doubleToLongBits(d2.doubleValue()). * * @param obj the object to compare * @return whether the objects are semantically equal Index: java/lang/Float.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/lang/Float.java,v retrieving revision 1.26 diff -u -r1.26 Float.java --- java/lang/Float.java 16 Jul 2003 12:21:07 -0000 1.26 +++ java/lang/Float.java 12 Apr 2004 14:32:04 -0000 @@ -391,9 +391,9 @@ * Float.NaN as equal, but treats 0.0 and * -0.0 as unequal. * - *

Note that f1.equals(f2) is identical to + *

Note that f1.equals(f2) is identical to * floatToIntBits(f1.floatValue()) == - * floatToIntBits(f2.floatValue()). + * floatToIntBits(f2.floatValue()). * * @param obj the object to compare * @return whether the objects are semantically equal Index: java/lang/Long.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/lang/Long.java,v retrieving revision 1.17 diff -u -r1.17 Long.java --- java/lang/Long.java 13 Jun 2002 17:28:54 -0000 1.17 +++ java/lang/Long.java 12 Apr 2004 14:32:04 -0000 @@ -225,7 +225,7 @@ * * @param s the String to convert * @param radix the radix (base) to use in the conversion - * @return the String argument converted to long + * @return the String argument converted to long * @throws NumberFormatException if s cannot be parsed as a * long */ Index: java/lang/Math.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/lang/Math.java,v retrieving revision 1.15 diff -u -r1.15 Math.java --- java/lang/Math.java 25 Sep 2003 17:13:52 -0000 1.15 +++ java/lang/Math.java 12 Apr 2004 14:32:04 -0000 @@ -564,7 +564,7 @@ /** * Take the nearest integer to the argument. This is equivalent to - * (int) Math.floor(a + 0.5f). If the argument is NaN, the result + * (int) Math.floor(a + 0.5f). If the argument is NaN, the result * is 0; otherwise if the argument is outside the range of int, the result * will be Integer.MIN_VALUE or Integer.MAX_VALUE, as appropriate. * Index: java/lang/Runtime.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/lang/Runtime.java,v retrieving revision 1.4 diff -u -r1.4 Runtime.java --- java/lang/Runtime.java 27 Dec 2003 10:48:48 -0000 1.4 +++ java/lang/Runtime.java 12 Apr 2004 14:32:04 -0000 @@ -175,13 +175,13 @@ * *

First, all shutdown hooks are run, in unspecified order, and * concurrently. Next, if finalization on exit has been enabled, all pending - * finalizers are run. Finally, the system calls halt. + * finalizers are run. Finally, the system calls halt.

* *

If this is run a second time after shutdown has already started, there * are two actions. If shutdown hooks are still executing, it blocks * indefinitely. Otherwise, if the status is nonzero it halts immediately; * if it is zero, it blocks indefinitely. This is typically called by - * System.exit. + * System.exit.

* * @param status the status to exit with * @throws SecurityException if permission is denied @@ -314,23 +314,23 @@ * System.exit was invoked), or when the user terminates * the virtual machine (such as by typing ^C, or logging off). There is * a security check to add hooks, - * RuntimePermission("shutdownHooks"). + * RuntimePermission("shutdownHooks"). * *

The hook must be an initialized, but unstarted Thread. The threads * are run concurrently, and started in an arbitrary order; and user * threads or daemons may still be running. Once shutdown hooks have * started, they must all complete, or else you must use halt, * to actually finish the shutdown sequence. Attempts to modify hooks - * after shutdown has started result in IllegalStateExceptions. + * after shutdown has started result in IllegalStateExceptions.

* *

It is imperative that you code shutdown hooks defensively, as you * do not want to deadlock, and have no idea what other hooks will be * running concurrently. It is also a good idea to finish quickly, as the - * virtual machine really wants to shut down! + * virtual machine really wants to shut down!

* *

There are no guarantees that such hooks will run, as there are ways * to forcibly kill a process. But in such a drastic case, shutdown hooks - * would do little for you in the first place. + * would do little for you in the first place.

* * @param hook an initialized, unstarted Thread * @throws IllegalArgumentException if the hook is already registered or run @@ -363,7 +363,7 @@ /** * De-register a shutdown hook. As when you registered it, there is a * security check to remove hooks, - * RuntimePermission("shutdownHooks"). + * RuntimePermission("shutdownHooks"). * * @param hook the hook to remove * @return true if the hook was successfully removed, false if it was not @@ -437,7 +437,7 @@ /** * Create a new subprocess with the specified command line. Calls - * exec(cmdline, null, null). A security check is performed, + * exec(cmdline, null, null). A security check is performed, * checkExec. * * @param cmdline the command to call Index: java/lang/RuntimePermission.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/lang/RuntimePermission.java,v retrieving revision 1.6 diff -u -r1.6 RuntimePermission.java --- java/lang/RuntimePermission.java 6 Mar 2002 19:44:44 -0000 1.6 +++ java/lang/RuntimePermission.java 12 Apr 2004 14:32:05 -0000 @@ -118,7 +118,7 @@ * access to in the system * rogue code can stop arbitrary threads * - * modifyThreadGroup + * modifyThreadGroup * allows the application to modify thread groups using any of the * methods destroy, resume, * setDaemon, setMaxPriority, @@ -141,7 +141,7 @@ * rogue code can write files, including viruses, and can modify the * virtual machine binary; if not just fill up the disk * - * loadLibrary.library name + * loadLibrary.library name * dynamic linking of the named library * native code can bypass many security checks of pure Java * Index: java/lang/Short.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/lang/Short.java,v retrieving revision 1.14 diff -u -r1.14 Short.java --- java/lang/Short.java 25 Feb 2002 20:02:58 -0000 1.14 +++ java/lang/Short.java 12 Apr 2004 14:32:05 -0000 @@ -60,13 +60,13 @@ /** * The minimum value a short can represent is -32768 (or - * -21515). */ public static final short MIN_VALUE = -32768; /** * The minimum value a short can represent is 32767 (or - * 21515). */ public static final short MAX_VALUE = 32767; @@ -144,7 +144,7 @@ * * @param s the String to convert * @param radix the radix (base) to use in the conversion - * @return the String argument converted to short + * @return the String argument converted to short * @throws NumberFormatException if s cannot be parsed as a * short */ Index: java/lang/System.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/lang/System.java,v retrieving revision 1.31 diff -u -r1.31 System.java --- java/lang/System.java 27 Dec 2003 10:48:48 -0000 1.31 +++ java/lang/System.java 12 Apr 2004 14:32:05 -0000 @@ -417,53 +417,53 @@ * *

The required properties include: *

- *
java.version
Java version number - *
java.vendor
Java vendor specific string - *
java.vendor.url
Java vendor URL - *
java.home
Java installation directory - *
java.vm.specification.version
VM Spec version - *
java.vm.specification.vendor
VM Spec vendor - *
java.vm.specification.name
VM Spec name - *
java.vm.version
VM implementation version - *
java.vm.vendor
VM implementation vendor - *
java.vm.name
VM implementation name - *
java.specification.version
Java Runtime Environment version - *
java.specification.vendor
Java Runtime Environment vendor - *
java.specification.name
Java Runtime Environment name - *
java.class.version
Java class version number - *
java.class.path
Java classpath - *
java.library.path
Path for finding Java libraries - *
java.io.tmpdir
Default temp file path - *
java.compiler
Name of JIT to use - *
java.ext.dirs
Java extension path - *
os.name
Operating System Name - *
os.arch
Operating System Architecture - *
os.version
Operating System Version - *
file.separator
File separator ("/" on Unix) - *
path.separator
Path separator (":" on Unix) - *
line.separator
Line separator ("\n" on Unix) - *
user.name
User account name - *
user.home
User home directory - *
user.dir
User's current working directory + *
java.version
Java version number
+ *
java.vendor
Java vendor specific string
+ *
java.vendor.url
Java vendor URL
+ *
java.home
Java installation directory
+ *
java.vm.specification.version
VM Spec version
+ *
java.vm.specification.vendor
VM Spec vendor
+ *
java.vm.specification.name
VM Spec name
+ *
java.vm.version
VM implementation version
+ *
java.vm.vendor
VM implementation vendor
+ *
java.vm.name
VM implementation name
+ *
java.specification.version
Java Runtime Environment version
+ *
java.specification.vendor
Java Runtime Environment vendor
+ *
java.specification.name
Java Runtime Environment name
+ *
java.class.version
Java class version number
+ *
java.class.path
Java classpath
+ *
java.library.path
Path for finding Java libraries
+ *
java.io.tmpdir
Default temp file path
+ *
java.compiler
Name of JIT to use
+ *
java.ext.dirs
Java extension path
+ *
os.name
Operating System Name
+ *
os.arch
Operating System Architecture
+ *
os.version
Operating System Version
+ *
file.separator
File separator ("/" on Unix)
+ *
path.separator
Path separator (":" on Unix)
+ *
line.separator
Line separator ("\n" on Unix)
+ *
user.name
User account name
+ *
user.home
User home directory
+ *
user.dir
User's current working directory
*
* * In addition, gnu defines several other properties, where ? stands for * each character in '0' through '9': *
- *
gnu.classpath.home
Path to the classpath libraries. - *
gnu.classpath.version
Version of the classpath libraries. - *
gnu.classpath.vm.shortname
Succinct version of the VM name; - * used for finding property files in file system - *
gnu.classpath.home.url
Base URL; used for finding - * property files in file system - *
gnu.cpu.endian
big or little - *
gnu.java.io.encoding_scheme_alias.ISO-8859-?
8859_? - *
gnu.java.io.encoding_scheme_alias.iso-8859-?
8859_? - *
gnu.java.io.encoding_scheme_alias.iso8859_?
8859_? - *
gnu.java.io.encoding_scheme_alias.iso-latin-_?
8859_? - *
gnu.java.io.encoding_scheme_alias.latin?
8859_? - *
gnu.java.io.encoding_scheme_alias.UTF-8
UTF8 - *
gnu.java.io.encoding_scheme_alias.utf-8
UTF8 + *
gnu.classpath.home
Path to the classpath libraries.
+ *
gnu.classpath.version
Version of the classpath libraries.
+ *
gnu.classpath.vm.shortname
Succinct version of the VM name; + * used for finding property files in file system
+ *
gnu.classpath.home.url
Base URL; used for finding + * property files in file system
+ *
gnu.cpu.endian
big or little
+ *
gnu.java.io.encoding_scheme_alias.ISO-8859-?
8859_?
+ *
gnu.java.io.encoding_scheme_alias.iso-8859-?
8859_?
+ *
gnu.java.io.encoding_scheme_alias.iso8859_?
8859_?
+ *
gnu.java.io.encoding_scheme_alias.iso-latin-_?
8859_?
+ *
gnu.java.io.encoding_scheme_alias.latin?
8859_?
+ *
gnu.java.io.encoding_scheme_alias.UTF-8
UTF8
+ *
gnu.java.io.encoding_scheme_alias.utf-8
UTF8
*
* * @return the system properties, will never be null Index: java/lang/reflect/InvocationHandler.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/lang/reflect/InvocationHandler.java,v retrieving revision 1.2 diff -u -r1.2 InvocationHandler.java --- java/lang/reflect/InvocationHandler.java 22 Jan 2002 22:27:00 -0000 1.2 +++ java/lang/reflect/InvocationHandler.java 12 Apr 2004 14:32:05 -0000 @@ -49,37 +49,38 @@ * interface. But in order for the proxy instance to do any good, it * needs to know what to do when interface methods are invoked! So, * this interface is basically a cool wrapper that provides runtime - * code generation needed by proxy instances.

+ * code generation needed by proxy instances. * - * While this interface was designed for use by Proxy, it will also - * work on any object in general.

+ *

While this interface was designed for use by Proxy, it will also + * work on any object in general.

* - * Hints for implementing this class:
+ *

Hints for implementing this class:

+ * *
    - *
  • Don't forget that Object.equals, Object.hashCode, and - * Object.toString will call this handler. In particular, - * a naive call to proxy.equals, proxy.hashCode, or proxy.toString - * will put you in an infinite loop. And remember that string - * concatenation also invokes toString.
  • - *
  • Obey the contract of the Method object you are handling, or - * the proxy instance will be forced to throw a - * address@hidden NullPointerException}, address@hidden ClassCastException}, - * or address@hidden UndeclaredThrowableException}.
  • - *
  • Be prepared to wrap/unwrap primitives as necessary.
  • - *
  • The Method object may be owned by a different interface than - * what was actually used as the qualifying type of the method - * invocation in the Java source code. This means that it might - * not always be safe to throw an exception listed as belonging - * to the method's throws clause.
  • + *
  • Don't forget that Object.equals, Object.hashCode, and + * Object.toString will call this handler. In particular, + * a naive call to proxy.equals, proxy.hashCode, or proxy.toString + * will put you in an infinite loop. And remember that string + * concatenation also invokes toString.
  • + *
  • Obey the contract of the Method object you are handling, or + * the proxy instance will be forced to throw a + * address@hidden NullPointerException}, address@hidden ClassCastException}, + * or address@hidden UndeclaredThrowableException}.
  • + *
  • Be prepared to wrap/unwrap primitives as necessary.
  • + *
  • The Method object may be owned by a different interface than + * what was actually used as the qualifying type of the method + * invocation in the Java source code. This means that it might + * not always be safe to throw an exception listed as belonging + * to the method's throws clause.
  • *
* *

For a fun time, create an InvocationHandler that handles the - * methods of a proxy instance of the InvocationHandler interface! + * methods of a proxy instance of the InvocationHandler interface!

* * @see Proxy * @see UndeclaredThrowableException * - * @author Eric Blake + * @author Eric Blake (address@hidden) * @since 1.3 * @status updated to 1.4 */ Index: java/lang/reflect/Proxy.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/lang/reflect/Proxy.java,v retrieving revision 1.11 diff -u -r1.11 Proxy.java --- java/lang/reflect/Proxy.java 17 Oct 2003 18:37:00 -0000 1.11 +++ java/lang/reflect/Proxy.java 12 Apr 2004 14:32:06 -0000 @@ -211,35 +211,36 @@ * Returns the proxy address@hidden Class} for the given ClassLoader and array * of interfaces, dynamically generating it if necessary. * - * There are several restrictions on this method, the violation of + *

There are several restrictions on this method, the violation of * which will result in an IllegalArgumentException or - * NullPointerException: + * NullPointerException:

+ * *
    - *
  • All objects in `interfaces' must represent distinct interfaces. - * Classes, primitive types, null, and duplicates are forbidden.
  • - *
  • The interfaces must be visible in the specified ClassLoader. - * In other words, for each interface i: - * Class.forName(i.getName(), false, loader) == i - * must be true.
  • - *
  • All non-public interfaces (if any) must reside in the same - * package, or the proxy class would be non-instantiable. If - * there are no non-public interfaces, the package of the proxy - * class is unspecified.
  • - *
  • All interfaces must be compatible - if two declare a method - * with the same name and parameters, the return type must be - * the same and the throws clause of the proxy class will be - * the maximal subset of subclasses of the throws clauses for - * each method that is overridden.
  • - *
  • VM constraints limit the number of interfaces a proxy class - * may directly implement (however, the indirect inheritance - * of address@hidden Serializable} does not count against this limit). - * Even though most VMs can theoretically have 65535 - * superinterfaces for a class, the actual limit is smaller - * because a class's constant pool is limited to 65535 entries, - * and not all entries can be interfaces.
  • - *

+ *

  • All objects in `interfaces' must represent distinct interfaces. + * Classes, primitive types, null, and duplicates are forbidden.
  • + *
  • The interfaces must be visible in the specified ClassLoader. + * In other words, for each interface i: + * Class.forName(i.getName(), false, loader) == i + * must be true.
  • + *
  • All non-public interfaces (if any) must reside in the same + * package, or the proxy class would be non-instantiable. If + * there are no non-public interfaces, the package of the proxy + * class is unspecified.
  • + *
  • All interfaces must be compatible - if two declare a method + * with the same name and parameters, the return type must be + * the same and the throws clause of the proxy class will be + * the maximal subset of subclasses of the throws clauses for + * each method that is overridden.
  • + *
  • VM constraints limit the number of interfaces a proxy class + * may directly implement (however, the indirect inheritance + * of address@hidden Serializable} does not count against this limit). + * Even though most VMs can theoretically have 65535 + * superinterfaces for a class, the actual limit is smaller + * because a class's constant pool is limited to 65535 entries, + * and not all entries can be interfaces.
  • + * * - * Note that different orders of interfaces produce distinct classes. + *

    Note that different orders of interfaces produce distinct classes.

    * * @param loader the class loader to define the proxy class in; null * implies the bootstrap class loader