Classpath remerge

Mark Wielaard mark@klomp.org
Wed Feb 13 14:00:00 GMT 2002


Hi,

This remerges some classes with Classpath 0.03. Mostly small workarounds
for some java compilers.

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

  Classpath 0.03 remerge:
  * java/math/BigInteger.java: import gnu.java.math.MPN not the whole
  package.
  * java/security/BasicPermission.java: extends with fully qualified
  classname.
  * java/util/WeakHashMap.java (WeakEntrySet): Add non-private
  constructor to reduce amount of emitted bytecode.
  (WeakEntry.getEntry()): this.get().
  * java/util/Arrays.java (ArrayList.indexOf()): this.equals().
  (ArrayList.lastIndexOf()): Likewise.
  * java/net/DatagramSocketImpl.java: Reformat.
  (setOption, getOption): Repeat abstract method definition from super.
  * java/net/SocketImpl.java: Reformat.
  (setOption, getOption): Repeat abstract method definition from super.
  * java/rmi/server/RMIClassLoader.java: Reformat.
  (MyClassLoader):  Add non-private constructor to reduce amount of
  emitted bytecode.
  * gnu/java/rmi/server/UnicastRemoteCall.java: Reformat.
  (DummyObjectOutputStream, DummyObjectInputStream): Add non-private
  constructor to reduce amount of emitted bytecode.

OK to commit?
There are some reformatting changes in there. Should I separate them?

Cheers,

Mark


-------------- next part --------------
Index: gnu/java/rmi/server/UnicastRemoteCall.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/rmi/server/UnicastRemoteCall.java,v
retrieving revision 1.2
diff -u -r1.2 UnicastRemoteCall.java
--- UnicastRemoteCall.java	2002/01/22 22:40:01	1.2
+++ UnicastRemoteCall.java	2002/02/13 21:47:28
@@ -1,5 +1,5 @@
-/*
-  Copyright (c) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+/* UnicastRemoteCall.java
+  Copyright (c) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -7,7 +7,7 @@
 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,268 +44,332 @@
 import java.io.StreamCorruptedException;
 import java.rmi.server.RemoteCall;
 import java.util.Vector;
-
-public class UnicastRemoteCall
-	implements RemoteCall {
-
-private UnicastConnection conn;
-private Object result;
-private Object object;
-private int opnum;
-private long hash;
-private Vector vec;
-private int ptr;
-
-/**
- * Incoming call.
- */
-UnicastRemoteCall(UnicastConnection conn) {
-	this.conn = conn;
-}
-
-/**
- * Outgoing call.
- */
-UnicastRemoteCall(Object obj, int opnum, long hash) {
-	this.object = obj;
-	this.opnum = opnum;
-	this.hash = hash;
-}
-
-public ObjectOutput getOutputStream() throws IOException {
-	vec = new Vector();
-	return (new DummyObjectOutputStream());
-}
-
-public void releaseOutputStream() throws IOException {
-	// Does nothing.
-}
-
-public ObjectInput getInputStream() throws IOException {
-	if (conn != null) {
-		return (conn.getObjectInputStream());
-	}
-	else {
-		ptr = 0;
-		return (new DummyObjectInputStream());
-	}
-}
-
-public void releaseInputStream() throws IOException {
-	// Does nothing.
-}
-
-public ObjectOutput getResultStream(boolean success) throws IOException, StreamCorruptedException {
-	vec = new Vector();
-	return (new DummyObjectOutputStream());
-}
-
-public void executeCall() throws Exception {
-	throw new Error("Not implemented");
-}
-
-public void done() throws IOException {
-	/* Does nothing */
-}
-
-Object returnValue() {
-	return (vec.elementAt(0));
-}
-
-Object[] getArguments() {
-	return (vec.toArray());
-}
-
-Object getObject() {
-	return (object);
-}
-
-int getOpnum() {
-	return (opnum);
-}
-
-long getHash() {
-	return (hash);
-}
-
-void setReturnValue(Object obj) {
-	vec.removeAllElements();
-	vec.addElement(obj);
-}
-
-/**
- * Dummy object output class.
- */
-private class DummyObjectOutputStream implements ObjectOutput {
-
-public void writeBoolean(boolean v) throws IOException {
-	vec.addElement(new Boolean(v));
-}
-
-public void writeByte(int v) throws IOException {
-	vec.addElement(new Byte((byte)v));
-}
-
-public void writeChar(int v) throws IOException {
-	vec.addElement(new Character((char)v));
-}
-
-public void writeDouble(double v) throws IOException {
-	vec.addElement(new Double(v));
-}
-
-public void writeFloat(float v) throws IOException {
-	vec.addElement(new Float(v));
-}
-
-public void writeInt(int v) throws IOException {
-	vec.addElement(new Integer(v));
-}
-
-public void writeLong(long v) throws IOException {
-	vec.addElement(new Long(v));
-}
-
-public void writeShort(int v) throws IOException {
-	vec.addElement(new Short((short)v));
-}
-
-public void writeObject(Object obj) throws IOException {
-	vec.addElement(obj);
-}
-
-public void write(byte b[]) throws IOException {
-	throw new IOException("not required");
-}
-
-public void write(byte b[], int off, int len) throws IOException {
-	throw new IOException("not required");
-}
-
-public void write(int b) throws IOException {
-	throw new IOException("not required");
-}
-
-public void writeBytes(String s) throws IOException {
-	throw new IOException("not required");
-}
-
-public void writeChars(String s) throws IOException {
-	throw new IOException("not required");
-}
-
-public void writeUTF(String str) throws IOException {
-	throw new IOException("not required");
-}
-
-public void flush() throws IOException {
-}
-
-public void close() throws IOException {
-}
-
-}
-
-/**
- * Dummy object input class.
- */
-private class DummyObjectInputStream implements ObjectInput {
-
-public boolean readBoolean() throws IOException {
-	Object obj = vec.elementAt(ptr++);
-	return (((Boolean)obj).booleanValue());
-}
-
-public byte readByte() throws IOException {
-	Object obj = vec.elementAt(ptr++);
-	return (((Byte)obj).byteValue());
-}
-
-public char readChar() throws IOException {
-	Object obj = vec.elementAt(ptr++);
-	return (((Character)obj).charValue());
-}
-
-public double readDouble() throws IOException {
-	Object obj = vec.elementAt(ptr++);
-	return (((Double)obj).doubleValue());
-}
-
-public float readFloat() throws IOException {
-	Object obj = vec.elementAt(ptr++);
-	return (((Float)obj).floatValue());
-}
-
-public int readInt() throws IOException {
-	Object obj = vec.elementAt(ptr++);
-	return (((Integer)obj).intValue());
-}
-
-public long readLong() throws IOException {
-	Object obj = vec.elementAt(ptr++);
-	return (((Long)obj).longValue());
-}
-
-public short readShort() throws IOException {
-	Object obj = vec.elementAt(ptr++);
-	return (((Short)obj).shortValue());
-}
-
-public Object readObject() throws IOException {
-	return (vec.elementAt(ptr++));
-}
-
-public int read(byte b[]) throws IOException {
-	throw new IOException("not required");
-}
-
-public int read(byte b[], int off, int len) throws IOException {
-	throw new IOException("not required");
-}
-
-public int read() throws IOException {
-	throw new IOException("not required");
-}
-
-public long skip(long n) throws IOException {
-	throw new IOException("not required");
-}
-
-public int available() throws IOException {
-	throw new IOException("not required");
-}
-
-public void readFully(byte b[]) throws IOException {
-	throw new IOException("not required");
-}
-
-public void readFully(byte b[], int off, int len) throws IOException {
-	throw new IOException("not required");
-}
-
-public String readLine() throws IOException {
-	throw new IOException("not required");
-}
-
-public String readUTF() throws IOException {
-	throw new IOException("not required");
-}
-
-public int readUnsignedByte() throws IOException {
-	throw new IOException("not required");
-}
-
-public int readUnsignedShort() throws IOException {
-	throw new IOException("not required");
-}
-
-public int skipBytes(int n) throws IOException {
-	throw new IOException("not required");
-}
 
-public void close() throws IOException {
-}
+public class UnicastRemoteCall implements RemoteCall
+{
 
-}
+  private UnicastConnection conn;
+  private Object result;
+  private Object object;
+  private int opnum;
+  private long hash;
+  private Vector vec;
+  private int ptr;
+
+  /**
+   * Incoming call.
+   */
+  UnicastRemoteCall(UnicastConnection conn)
+  {
+    this.conn = conn;
+  }
+
+  /**
+   * Outgoing call.
+   */
+  UnicastRemoteCall(Object obj, int opnum, long hash)
+  {
+    this.object = obj;
+    this.opnum = opnum;
+    this.hash = hash;
+  }
+
+  public ObjectOutput getOutputStream() throws IOException
+  {
+    vec = new Vector();
+    return new DummyObjectOutputStream();
+  }
+
+  public void releaseOutputStream() throws IOException
+  {
+    // Does nothing.
+  }
+
+  public ObjectInput getInputStream() throws IOException
+  {
+    if (conn != null)
+      return conn.getObjectInputStream();
+    ptr = 0;
+    return new DummyObjectInputStream();
+  }
+
+  public void releaseInputStream() throws IOException
+  {
+    // Does nothing.
+  }
+
+  public ObjectOutput getResultStream(boolean success)
+    throws IOException, StreamCorruptedException
+  {
+    vec = new Vector();
+    return new DummyObjectOutputStream();
+  }
+
+  public void executeCall() throws Exception
+  {
+    throw new Error("Not implemented");
+  }
+
+  public void done() throws IOException
+  {
+    /* Does nothing */
+  }
+
+  Object returnValue()
+  {
+    return vec.elementAt(0);
+  }
+
+  Object[] getArguments()
+  {
+    return vec.toArray();
+  }
+
+  Object getObject()
+  {
+    return object;
+  }
+
+  int getOpnum()
+  {
+    return opnum;
+  }
+
+  long getHash()
+  {
+    return hash;
+  }
+
+  void setReturnValue(Object obj)
+  {
+    vec.removeAllElements();
+    vec.addElement(obj);
+  }
+
+  /**
+   * Dummy object output class.
+   */
+  private class DummyObjectOutputStream implements ObjectOutput
+  {
+    /**
+     * Non-private constructor to reduce bytecode emitted.
+     */
+    DummyObjectOutputStream()
+    {
+    }
+
+    public void writeBoolean(boolean v) throws IOException
+    {
+      vec.addElement(new Boolean(v));
+    }
+
+    public void writeByte(int v) throws IOException
+    {
+      vec.addElement(new Byte((byte) v));
+    }
+
+    public void writeChar(int v) throws IOException
+    {
+      vec.addElement(new Character((char) v));
+    }
+
+    public void writeDouble(double v) throws IOException
+    {
+      vec.addElement(new Double(v));
+    }
+
+    public void writeFloat(float v) throws IOException
+    {
+      vec.addElement(new Float(v));
+    }
+
+    public void writeInt(int v) throws IOException
+    {
+      vec.addElement(new Integer(v));
+    }
+
+    public void writeLong(long v) throws IOException
+    {
+      vec.addElement(new Long(v));
+    }
+
+    public void writeShort(int v) throws IOException
+    {
+      vec.addElement(new Short((short) v));
+    }
+
+    public void writeObject(Object obj) throws IOException
+    {
+      vec.addElement(obj);
+    }
+
+    public void write(byte b[]) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void write(byte b[], int off, int len) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void write(int b) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void writeBytes(String s) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void writeChars(String s) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void writeUTF(String str) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void flush() throws IOException
+    {
+    }
+
+    public void close() throws IOException
+    {
+    }
+  } // class DummyObjectOutputStream
+
+  /**
+   * Dummy object input class.
+   */
+  private class DummyObjectInputStream implements ObjectInput
+  {
+    /**
+     * Non-private constructor to reduce bytecode emitted.
+     */
+    DummyObjectInputStream()
+    {
+    }
+
+    public boolean readBoolean() throws IOException
+    {
+      Object obj = vec.elementAt(ptr++);
+      return ((Boolean) obj).booleanValue();
+    }
+
+    public byte readByte() throws IOException
+    {
+      Object obj = vec.elementAt(ptr++);
+      return ((Byte) obj).byteValue();
+    }
+
+    public char readChar() throws IOException
+    {
+      Object obj = vec.elementAt(ptr++);
+      return ((Character) obj).charValue();
+    }
+
+    public double readDouble() throws IOException
+    {
+      Object obj = vec.elementAt(ptr++);
+      return ((Double) obj).doubleValue();
+    }
+
+    public float readFloat() throws IOException
+    {
+      Object obj = vec.elementAt(ptr++);
+      return ((Float) obj).floatValue();
+    }
+
+    public int readInt() throws IOException
+    {
+      Object obj = vec.elementAt(ptr++);
+      return ((Integer) obj).intValue();
+    }
+
+    public long readLong() throws IOException
+    {
+      Object obj = vec.elementAt(ptr++);
+      return ((Long) obj).longValue();
+    }
+
+    public short readShort() throws IOException
+    {
+      Object obj = vec.elementAt(ptr++);
+      return ((Short) obj).shortValue();
+    }
+
+    public Object readObject() throws IOException
+    {
+      return vec.elementAt(ptr++);
+    }
+
+    public int read(byte b[]) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public int read(byte b[], int off, int len) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public int read() throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public long skip(long n) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public int available() throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void readFully(byte b[]) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void readFully(byte b[], int off, int len) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public String readLine() throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public String readUTF() throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public int readUnsignedByte() throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public int readUnsignedShort() throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public int skipBytes(int n) throws IOException
+    {
+      throw new IOException("not required");
+    }
+
+    public void close() throws IOException
+    {
+    }
+  } // class DummyObjectInputStream
 
 }
Index: java/math/BigInteger.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/math/BigInteger.java,v
retrieving revision 1.17
diff -u -r1.17 BigInteger.java
--- BigInteger.java	2002/01/22 22:40:22	1.17
+++ BigInteger.java	2002/02/13 21:47:28
@@ -37,7 +37,7 @@
 
 package java.math;
 
-import gnu.java.math.*;
+import gnu.java.math.MPN;
 import java.util.Random;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
Index: java/net/DatagramSocketImpl.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/net/DatagramSocketImpl.java,v
retrieving revision 1.7
diff -u -r1.7 DatagramSocketImpl.java
--- DatagramSocketImpl.java	2002/01/22 22:40:23	1.7
+++ DatagramSocketImpl.java	2002/02/13 21:47:28
@@ -1,5 +1,5 @@
 /* DatagramSocketImpl.java -- Abstract class for UDP socket implementations
-   Copyright (C) 1998, 1999 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -7,7 +7,7 @@
 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
@@ -45,10 +45,8 @@
  * Written using on-line Java Platform 1.2 API Specification, as well
  * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
  * Status:  Believed complete and correct.
- */
-
-/**
- * This abstract class models a datagram socket implementation.  An
+ *
+ * <p>This abstract class models a datagram socket implementation.  An
  * actual implementation class would implement these methods, probably
  * via redirecting them to native code.
  *
@@ -64,7 +62,7 @@
   protected int localPort;
 
   /**
-   * The FileDescriptor object for this object. 
+   * The FileDescriptor object for this object.
    */
   protected FileDescriptor fd;
 
@@ -84,7 +82,7 @@
    * @exception SocketException If an error occurs
    */
   protected abstract void bind(int lport, InetAddress laddr)
-  	throws SocketException;
+    throws SocketException;
 
   /**
    * This methods closes the socket
@@ -123,7 +121,7 @@
 
   /**
    * Receives a packet of data from the network  Will block until a packet
-   * arrives.  The packet info in populated into the passed in 
+   * arrives.  The packet info in populated into the passed in
    * DatagramPacket object.
    *
    * @param p A place to store the incoming packet.
@@ -152,7 +150,7 @@
    */
   protected abstract byte getTTL() throws IOException;
 
- /**
+  /**
    * Sets the Time to Live (TTL) setting on this socket to the specified
    * value.
    *
@@ -179,7 +177,7 @@
    */
   protected abstract void join(InetAddress inetaddr) throws IOException;
 
- /**
+  /**
    * Causes the socket to leave the specified multicast group.
    *
    * @param inetaddr The multicast address to leave
@@ -203,4 +201,36 @@
   {
     return localPort;
   }
+
+  /**
+   * Sets the specified option on a socket to the passed in object.  For
+   * options that take an integer argument, the passed in object is an
+   * <code>Integer</code>.  For options that are set to on or off, the
+   * value passed will be a <code>Boolean</code>.   The <code>option_id</code> 
+   * parameter is one of the defined constants in the superinterface.
+   *
+   * @param option_id The identifier of the option
+   * @param val The value to set the option to
+   *
+   * @exception SocketException If an error occurs
+   * @XXX This redeclaration from SocketOptions is a workaround to a gcj bug.
+   */
+  public abstract void setOption(int option_id, Object val)
+    throws SocketException;
+
+  /**
+   * Returns the current setting of the specified option.  The 
+   * <code>Object</code> returned will be an <code>Integer</code> for options 
+   * that have integer values.  For options that are set to on or off, a 
+   * <code>Boolean</code> will be returned.   The <code>option_id</code>
+   * is one of the defined constants in the superinterface.
+   *
+   * @param option_id The option identifier
+   *
+   * @return The current value of the option
+   *
+   * @exception SocketException If an error occurs
+   * @XXX This redeclaration from SocketOptions is a workaround to a gcj bug.
+   */
+  public abstract Object getOption(int option_id) throws SocketException;
 }
Index: java/net/SocketImpl.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/net/SocketImpl.java,v
retrieving revision 1.7
diff -u -r1.7 SocketImpl.java
--- SocketImpl.java	2002/01/22 22:40:23	1.7
+++ SocketImpl.java	2002/02/13 21:47:28
@@ -1,5 +1,5 @@
 /* SocketImpl.java -- Abstract socket implementation class
-   Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -7,7 +7,7 @@
 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
@@ -38,38 +38,36 @@
 package java.net;
 
 import java.io.*;
-
- /* Written using on-line Java Platform 1.2 API Specification.
-  * Believed complete and correct.
-  */
 
-  /**
-   * This abstract class serves as the parent class for socket implementations.
-   * The implementation class serves an intermediary to native routines that
-   * perform system specific socket operations.
-   * <p>
-   * A default implementation is provided by the system, but this can be
-   * changed via installing a <code>SocketImplFactory</code> (through a call 
-   * to the static method <code>Socket.setSocketImplFactory</code>).  A 
-   * subclass of <code>Socket</code> can also pass in a <code>SocketImpl</code>
-   * to the <code>Socket(SocketImpl)</code> constructor to use an 
-   * implementation different from the system default without installing
-   * a factory.
-   *
-   * @author Aaron M. Renn (arenn@urbanophile.com)
-   * @author Per Bothner <bothner@cygnus.com>
-   */
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Believed complete and correct.
+ */
+
+/**
+ * This abstract class serves as the parent class for socket implementations.
+ * The implementation class serves an intermediary to native routines that
+ * perform system specific socket operations.
+ * <p>
+ * A default implementation is provided by the system, but this can be
+ * changed via installing a <code>SocketImplFactory</code> (through a call
+ * to the static method <code>Socket.setSocketImplFactory</code>).  A
+ * subclass of <code>Socket</code> can also pass in a <code>SocketImpl</code>
+ * to the <code>Socket(SocketImpl)</code> constructor to use an
+ * implementation different from the system default without installing
+ * a factory.
+ *
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Per Bothner <bothner@cygnus.com>
+ */
 public abstract class SocketImpl implements SocketOptions
 {
-
-
   /**
    * The address of the remote end of the socket connection
    */
   protected InetAddress address;
 
   /**
-   * A FileDescriptor object representing this socket connection.  
+   * A FileDescriptor object representing this socket connection.
    */
   protected FileDescriptor fd;
 
@@ -86,7 +84,7 @@
   /**
    * Default, no-argument constructor for use by subclasses.
    */
-  public SocketImpl ()
+  public SocketImpl()
   {
   }
 
@@ -98,7 +96,7 @@
    *
    * @param stream true for a stream socket, false for a datagram socket
    */
-  protected abstract void create (boolean stream) throws IOException;
+  protected abstract void create(boolean stream) throws IOException;
 
   /**
    * Connects to the remote hostname and port specified as arguments.
@@ -108,7 +106,7 @@
    *
    * @exception IOException If an error occurs
    */
-  protected abstract void connect (String host, int port) throws IOException;
+  protected abstract void connect(String host, int port) throws IOException;
 
   /**
    * Connects to the remote address and port specified as arguments.
@@ -118,7 +116,7 @@
    *
    * @exception IOException If an error occurs
    */
-  protected abstract void connect (InetAddress host, int port)
+  protected abstract void connect(InetAddress host, int port)
     throws IOException;
 
   /**
@@ -133,7 +131,7 @@
    *
    * @exception IOException If an error occurs
    */
-  protected abstract void bind (InetAddress host, int port) throws IOException;
+  protected abstract void bind(InetAddress host, int port) throws IOException;
 
   /**
    * Starts listening for connections on a socket. The backlog parameter
@@ -142,10 +140,10 @@
    * number, additional connections will be refused.
    *
    * @param backlog The length of the pending connection queue
-   * 
+   *
    * @exception IOException If an error occurs
    */
-  protected abstract void listen (int backlog) throws IOException;
+  protected abstract void listen(int backlog) throws IOException;
 
   /**
    * Accepts a connection on this socket.
@@ -154,7 +152,7 @@
    *
    * @exception IOException If an error occurs
    */
-  protected abstract void accept (SocketImpl s) throws IOException;
+  protected abstract void accept(SocketImpl s) throws IOException;
 
   /**
    * Returns an <code>InputStream</code> object for reading from this socket.
@@ -167,7 +165,7 @@
 
   /**
    * Returns an <code>OutputStream</code> object for writing to this socket
-   * 
+   *
    * @return An <code>OutputStream</code> for writing to this socket.
    *
    * @exception IOException If an error occurs.
@@ -182,7 +180,7 @@
    *
    * @exception IOException If an error occurs
    */
-  protected abstract int available () throws IOException;
+  protected abstract int available() throws IOException;
 
   /**
    * Closes the socket.  This will normally cause any resources, such as the
@@ -193,45 +191,77 @@
    *
    * @exception IOException If an error occurs
    */
-  protected abstract void close () throws IOException;
+  protected abstract void close() throws IOException;
 
   /**
    * Returns the FileDescriptor objects for this socket.
    *
    * @return A FileDescriptor for this socket.
    */
-  protected FileDescriptor getFileDescriptor () { return fd; }
+  protected FileDescriptor getFileDescriptor() { return fd; }
 
   /**
    * Returns the remote address this socket is connected to
    *
    * @return The remote address
    */
-  protected InetAddress getInetAddress () { return address; }
+  protected InetAddress getInetAddress() { return address; }
 
   /**
    * Returns the remote port this socket is connected to
    *
    * @return The remote port
    */
-  protected int getPort () { return port; }
+  protected int getPort() { return port; }
 
   /**
    * Returns the local port this socket is bound to
    *
    * @return The local port
    */
-  protected int getLocalPort () { return localport; }
+  protected int getLocalPort() { return localport; }
 
   /**
-   * Returns a <code>String</code> representing the remote host and port of this
-   * socket.
+   * Returns a <code>String</code> representing the remote host and port of
+   * this socket.
    *
    * @return A <code>String</code> for this socket.
    */
-  public String toString ()
+  public String toString()
   {
-    return "[addr=" + address.toString() + ",port=" + Integer.toString(port) +
-      ",localport=" + Integer.toString(localport) + "]";
+    return "[addr=" + address.toString() + ",port=" + Integer.toString(port)
+      + ",localport=" + Integer.toString(localport) + "]";
   }
+
+  /**
+   * Sets the specified option on a socket to the passed in object.  For
+   * options that take an integer argument, the passed in object is an
+   * <code>Integer</code>.  For options that are set to on or off, the
+   * value passed will be a <code>Boolean</code>.   The <code>option_id</code> 
+   * parameter is one of the defined constants in the superinterface.
+   *
+   * @param option_id The identifier of the option
+   * @param val The value to set the option to
+   *
+   * @exception SocketException If an error occurs
+   * @XXX This redeclaration from SocketOptions is a workaround to a gcj bug.
+   */
+  public abstract void setOption(int option_id, Object val)
+    throws SocketException;
+
+  /**
+   * Returns the current setting of the specified option.  The 
+   * <code>Object</code> returned will be an <code>Integer</code> for options 
+   * that have integer values.  For options that are set to on or off, a 
+   * <code>Boolean</code> will be returned.   The <code>option_id</code>
+   * is one of the defined constants in the superinterface.
+   *
+   * @param option_id The option identifier
+   *
+   * @return The current value of the option
+   *
+   * @exception SocketException If an error occurs
+   * @XXX This redeclaration from SocketOptions is a workaround to a gcj bug.
+   */
+  public abstract Object getOption(int option_id) throws SocketException;
 }
Index: java/rmi/server/RMIClassLoader.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/rmi/server/RMIClassLoader.java,v
retrieving revision 1.2
diff -u -r1.2 RMIClassLoader.java
--- RMIClassLoader.java	2002/01/22 22:40:29	1.2
+++ RMIClassLoader.java	2002/02/13 21:47:28
@@ -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 @@
 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
@@ -43,60 +43,83 @@
 import java.io.DataInputStream;
 import java.net.MalformedURLException;
 import java.util.StringTokenizer;
-
-public class RMIClassLoader {
 
-static private class MyClassLoader extends ClassLoader {
+public class RMIClassLoader
+{
 
-Class defineClass(String name, byte[] data) {
-	return (defineClass(name, data, 0, data.length));
-}
-}
-static private MyClassLoader loader = new MyClassLoader();
-
-/**
- * @deprecated
- */
-public static Class loadClass(String name) throws MalformedURLException, ClassNotFoundException {
-	return (loadClass(System.getProperty("java.rmi.server.codebase"), 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 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 String getClassAnnotation(Class cl) {
-	return (null);	// We don't yet do this.
-}
-
-/**
- * @deprecated
- */
-public static Object getSecurityContext(ClassLoader loader) {
-	throw new Error("Not implemented");
-}
+  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();
+
+  /**
+   * @deprecated
+   */
+  public static Class loadClass(String name)
+    throws MalformedURLException, ClassNotFoundException
+  {
+    return loadClass(System.getProperty("java.rmi.server.codebase"), 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 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 String getClassAnnotation(Class cl)
+  {
+    return null; // We don't yet do this.
+  }
+
+  /**
+   * @deprecated
+   */
+  public static Object getSecurityContext(ClassLoader loader)
+  {
+    throw new Error("Not implemented");
+  }
 
 }
Index: java/security/BasicPermission.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/security/BasicPermission.java,v
retrieving revision 1.3
diff -u -r1.3 BasicPermission.java
--- BasicPermission.java	2002/01/22 22:40:30	1.3
+++ BasicPermission.java	2002/02/13 21:47:30
@@ -61,8 +61,9 @@
  *
  * @author Aaron M. Renn (arenn@urbanophile.com)
  */
-public abstract class BasicPermission extends Permission implements
-  Serializable
+public abstract class BasicPermission extends java.security.Permission
+  implements Serializable
+  // FIXME extends with fully qualified classname as workaround for gcj 3.0.4
 {
   /**
    * This method initializes a new instance of <code>BasicPermission</code>
Index: java/util/Arrays.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/util/Arrays.java,v
retrieving revision 1.5
diff -u -r1.5 Arrays.java
--- Arrays.java	2002/01/22 22:40:38	1.5
+++ Arrays.java	2002/02/13 21:47:30
@@ -1,5 +1,5 @@
 /* Arrays.java -- Utility class with methods to operate on arrays
-   Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -2430,7 +2430,7 @@
     {
       int size = a.length;
       for (int i = 0; i < size; i++)
-        if (equals(o, a[i]))
+        if (this.equals(o, a[i]))
           return i;
       return -1;
     }
@@ -2439,7 +2439,7 @@
     {
       int i = a.length;
       while (--i >= 0)
-        if (equals(o, a[i]))
+        if (this.equals(o, a[i]))
           return i;
       return -1;
     }
Index: java/util/WeakHashMap.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/util/WeakHashMap.java,v
retrieving revision 1.4
diff -u -r1.4 WeakHashMap.java
--- WeakHashMap.java	2002/01/22 22:40:39	1.4
+++ WeakHashMap.java	2002/02/13 21:47:32
@@ -1,6 +1,6 @@
 /* java.util.WeakHashMap -- a hashtable that keeps only weak references
    to its keys, allowing the virtual machine to reclaim them
-   Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -170,6 +170,13 @@
   private final class WeakEntrySet extends AbstractSet
   {
     /**
+     * Non-private constructor to reduce bytecode emitted.
+     */
+    WeakEntrySet()
+    {
+    }
+
+    /**
      * Returns the size of this set.
      *
      * @return the set size
@@ -483,7 +490,7 @@
      */
     WeakEntry getEntry()
     {
-      final Object key = get();
+      final Object key = this.get();
       if (key == null)
         return null;
       return new WeakEntry(key);


More information about the Java-patches mailing list