* gnu/java/nio/DatagramChannelImpl.java

(inChannelOperation): New field.
	(isInChannelOperation): New accessor.
	(setInChannelOperation): New modifier.
	(receive): Use capacity() - position() of destination
	buffer instead of remaining(). Set and reset our "in
	channel operation indicator" before and after delegating
	the receive to our datagram socket. Removed testing code.
	Update destination buffer's current position if it is
	backed by a byte array (hasArray() is true).
	(send): Set and reset our "in channel operation indicator"
	before and after delegating the send to our datagram socket.
	Removed testing code. Update source buffer's current position
	if it is backed by a byte array (hasArray() is true).
	* gnu/java/nio/SocketChannelImpl.java (read(ByteBuffer)):
	Use capacity() - position() of destination buffer instead
	of remaining().
	* java/net/DatagramSocket.java (receive): Don't throw an
	IllegalBlockingModeException if we have a non-blocking
	channel which initiated this operation.
	(send): Likewise.

From-SVN: r77173
This commit is contained in:
Mohan Embar
2004-02-03 16:07:24 +00:00
committed by Mohan Embar
parent 9b66ebb146
commit 8696d927c0
4 changed files with 78 additions and 12 deletions
+1 -1
View File
@@ -226,7 +226,7 @@ public final class SocketChannelImpl extends SocketChannel
int offset = 0;
InputStream input = socket.getInputStream();
int available = input.available();
int len = dst.remaining();
int len = dst.capacity() - dst.position();
if (available == 0)
return 0;