Index: ChangeLog =================================================================== RCS file: /cvsroot/classpath/classpath/ChangeLog,v retrieving revision 1.1711 diff -u -b -B -r1.1711 ChangeLog --- ChangeLog 26 Dec 2003 22:21:56 -0000 1.1711 +++ ChangeLog 26 Dec 2003 22:26:13 -0000 @@ -1,5 +1,16 @@ 2003-12-26 Michael Koch + * java/net/DatagramPacket.java + (length): Made package-private to make it accessible via CNI. + (maxlen): New field. + (DatagramPacket): Cleaned up. + (setSocketAddress): Add message to exception. + (setData): Call other setData(). + (setData): Call setLength(). + (setLength): Initialize maxlen too. + +2003-12-26 Michael Koch + * java/net/DatagramSocket.java (close): Directly return if socket is closed. * java/net/ServerSocket.java bind(): Index: java/net/DatagramPacket.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/net/DatagramPacket.java,v retrieving revision 1.12 diff -u -b -B -r1.12 DatagramPacket.java --- java/net/DatagramPacket.java 26 Nov 2003 15:57:31 -0000 1.12 +++ java/net/DatagramPacket.java 26 Dec 2003 22:26:13 -0000 @@ -78,13 +78,18 @@ private int offset; /** - * The length of the data buffer to send + * The length of the data buffer to send. */ - private int length; + int length; + + /** + * The maximal length of the buffer. + */ + int maxlen; /** * The address to which the packet should be sent or from which it - * was received + * was received. */ private InetAddress address; @@ -106,21 +111,9 @@ */ public DatagramPacket(byte[] buf, int offset, int length) { - if (buf == null) - throw new NullPointerException("Null buffer"); - if (offset < 0) - throw new IllegalArgumentException("Invalid offset: " + offset); - if (length < 0) - throw new IllegalArgumentException("Invalid length: " + length); - if (offset + length > buf.length) - throw new IllegalArgumentException("Potential buffer overflow - offset: " - + offset + " length: " + length); - - buffer = buf; - this.offset = offset; - this.length = length; - this.address = null; - this.port = -1; + setData(buf, offset, length); + address = null; + port = -1; } /** @@ -150,25 +143,9 @@ public DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port) { - if (buf == null) - throw new NullPointerException("Null buffer"); - if (offset < 0) - throw new IllegalArgumentException("Invalid offset: " + offset); - if (length < 0) - throw new IllegalArgumentException("Invalid length: " + length); - if (offset + length > buf.length) - throw new IllegalArgumentException("Potential buffer overflow - offset: " - + offset + " length: " + length); - if (port < 0 || port > 65535) - throw new IllegalArgumentException("Invalid port: " + port); - if (address == null) - throw new NullPointerException("Null address"); - - buffer = buf; - this.offset = offset; - this.length = length; - this.address = address; - this.port = port; + setData(buf, offset, length); + setAddress(address); + setPort(port); } /** @@ -203,8 +180,13 @@ SocketAddress address) throws SocketException { - this(buf, offset, length, ((InetSocketAddress)address).getAddress(), - ((InetSocketAddress)address).getPort()); + if (! (address instanceof InetSocketAddress)) + throw new IllegalArgumentException("unsupported address type"); + + InetSocketAddress tmp = (InetSocketAddress) address; + setData(buf, offset, length); + setAddress(tmp.getAddress()); + setPort(tmp.getPort()); } /** @@ -223,8 +205,7 @@ public DatagramPacket(byte[] buf, int length, SocketAddress address) throws SocketException { - this(buf, 0, length, ((InetSocketAddress)address).getAddress(), - ((InetSocketAddress)address).getPort()); + this(buf, 0, length, address); } /** @@ -330,9 +311,10 @@ public void setSocketAddress(SocketAddress address) throws IllegalArgumentException { - if (address == null) throw new IllegalArgumentException(); + if (address == null) + throw new IllegalArgumentException("address may not be null"); - InetSocketAddress tmp = (InetSocketAddress)address; + InetSocketAddress tmp = (InetSocketAddress) address; this.address = tmp.getAddress(); this.port = tmp.getPort(); } @@ -359,14 +341,9 @@ * * @since 1.1 */ - public synchronized void setData(byte[] buf) + public void setData(byte[] buf) { - // This form of setData requires setLength to be called separately - // and subsequently. - if (buf == null) - throw new NullPointerException("Null buffer"); - - buffer = buf; + setData(buf, 0, buf.length); } /** @@ -388,15 +365,10 @@ throw new NullPointerException("Null buffer"); if (offset < 0) throw new IllegalArgumentException("Invalid offset: " + offset); - if (length < 0) - throw new IllegalArgumentException("Invalid length: " + length); - if (offset + length > buf.length) - throw new IllegalArgumentException("Potential buffer overflow - offset: " - + offset + " length: " + length); buffer = buf; this.offset = offset; - this.length = length; + setLength(length); } /** @@ -418,6 +390,6 @@ + offset + " length: " + length); this.length = length; + this.maxlen = length; } -} // class DatagramPacket - +}