[multiple changes]

2002-02-14  Mark Wielaard  <mark@klomp.org>

    * java/math/BigInteger.java: import gnu.java.math.MPN not the whole
    package as a workaround for gcj 3.0.x

2002-02-14  Mark Wielaard <mark@klomp.org>

    * java/security/BasicPermission.java: extends with fully qualified
    classname as workaround for gcj 3.0.4.

2002-02-14  Eric Blake  <ebb9@email.byu.edu>

    * java/net/DatagramSocketImpl.java (setOption, getOption): Work
    around gcj bug of wrong emitted qualifier for inherited method.
    * java/net/SocketImpl.java (setOption, getOption): Ditto.
    * java/util/WeakHashMap.java (WeakEntrySet): Add non-private
    constructor to reduce amount of emitted bytecode. While this
    happens to work around a jikes 1.15 bug, it is still a useful
    patch even for correct compilers.
    * java/rmi/server/RMIClassLoader.java (MyClassLoader): Ditto.
    * gnu/java/rmi/server/UnicastRemoteCall.java
    (DummyObjectOutputStream, DummyObjectInputStream): Ditto.

2002-02-14  Eric Blake  <ebb9@email.byu.edu>

    * java/net/DatagramSocketImpl.java: Reformat (no code changes).
    * java/net/SocketImpl.java: Ditto.
    * java/rmi/server/RMIClassLoader.java: Ditto.
    * gnu/java/rmi/server/UnicastRemoteCall.java: Ditto.

2002-02-14  Mark Wielaard <mark@klomp.org>

    Thanks to Takashi Okamoto
    * java/util/Arrays.java (ArrayList.indexOf()): this.equals().
    * java/util/Arrays.java (ArrayList.lastIndexOf()): Likewise.
    * java/util/WeakHashMap.java (WeakEntry.getEntry()): this.get().

From-SVN: r49778
This commit is contained in:
Mark Wielaard 2002-02-14 23:16:11 +00:00
parent 9a360704f9
commit 894286989e
9 changed files with 536 additions and 344 deletions

View file

@ -1,5 +1,5 @@
/*
Copyright (c) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
/* RMIClassLoader.java
Copyright (c) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@ -44,59 +44,82 @@ import java.io.DataInputStream;
import java.net.MalformedURLException;
import java.util.StringTokenizer;
public class RMIClassLoader {
public class RMIClassLoader
{
static private class MyClassLoader extends ClassLoader {
static private class MyClassLoader extends ClassLoader
{
/**
* Non-private constructor to reduce bytecode emitted.
*/
MyClassLoader()
{
}
Class defineClass(String name, byte[] data) {
return (defineClass(name, data, 0, data.length));
}
}
static private MyClassLoader loader = new MyClassLoader();
Class defineClass(String name, byte[] data)
{
return defineClass(name, data, 0, data.length);
}
}
/**
* @deprecated
*/
public static Class loadClass(String name) throws MalformedURLException, ClassNotFoundException {
return (loadClass(System.getProperty("java.rmi.server.codebase"), name));
}
static private MyClassLoader loader = new MyClassLoader();
public static Class loadClass(URL codebase, String name) throws MalformedURLException, ClassNotFoundException {
URL u = new URL(codebase, name + ".class");
try {
URLConnection conn = u.openConnection();
DataInputStream strm = new DataInputStream(conn.getInputStream());
byte data[] = new byte[conn.getContentLength()];
strm.readFully(data);
return (loader.defineClass(name, data));
}
catch (IOException _) {
throw new ClassNotFoundException(name);
}
}
/**
* @deprecated
*/
public static Class loadClass(String name)
throws MalformedURLException, ClassNotFoundException
{
return loadClass(System.getProperty("java.rmi.server.codebase"), name);
}
public static Class loadClass(String codebase, String name) throws MalformedURLException, ClassNotFoundException {
StringTokenizer tok = new StringTokenizer(codebase, ":");
while (tok.hasMoreTokens()) {
try {
return (loadClass(new URL(tok.nextToken()), name));
}
catch (ClassNotFoundException _) {
// Ignore - try the next one.
}
}
throw new ClassNotFoundException(name);
}
public static Class loadClass(URL codebase, String name)
throws MalformedURLException, ClassNotFoundException
{
URL u = new URL(codebase, name + ".class");
try
{
URLConnection conn = u.openConnection();
DataInputStream strm = new DataInputStream(conn.getInputStream());
byte data[] = new byte[conn.getContentLength()];
strm.readFully(data);
return loader.defineClass(name, data);
}
catch (IOException _)
{
throw new ClassNotFoundException(name);
}
}
public static String getClassAnnotation(Class cl) {
return (null); // We don't yet do this.
}
public static Class loadClass(String codebase, String name)
throws MalformedURLException, ClassNotFoundException
{
StringTokenizer tok = new StringTokenizer(codebase, ":");
while (tok.hasMoreTokens())
{
try
{
return loadClass(new URL(tok.nextToken()), name);
}
catch (ClassNotFoundException _)
{
// Ignore - try the next one.
}
}
throw new ClassNotFoundException(name);
}
/**
* @deprecated
*/
public static Object getSecurityContext(ClassLoader loader) {
throw new Error("Not implemented");
}
public static String getClassAnnotation(Class cl)
{
return null; // We don't yet do this.
}
/**
* @deprecated
*/
public static Object getSecurityContext(ClassLoader loader)
{
throw new Error("Not implemented");
}
}