From 8479d5f1230a6ac319939335c98988f13d5353d7 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 6 Jan 2006 18:57:36 +0000 Subject: [PATCH] [multiple changes] 2005-12-26 Anthony Green * gnu/java/nio/SocketChannelImpl.java (read): Compute the right amount of data to read (dst.remaining()). * gnu/java/nio/DatagramChannelImpl.java (receive): Ditto. 2005-11-11 Mark Wielaard Reported by john.zigman@anu.edu.au as bug #24608. * gnu/java/nio/SocketChannelImpl.java (read): Put readBytes in destination ByteBuffer when it doesn't have an array instead of len bytes. From-SVN: r109422 --- libjava/ChangeLog | 13 +++++++++++++ libjava/gnu/java/nio/DatagramChannelImpl.java | 4 ++-- libjava/gnu/java/nio/SocketChannelImpl.java | 6 +++--- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 4cbb9e738dd..76142c5c543 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,16 @@ +2005-12-26 Anthony Green + + * gnu/java/nio/SocketChannelImpl.java (read): Compute the right amount + of data to read (dst.remaining()). + * gnu/java/nio/DatagramChannelImpl.java (receive): Ditto. + +2005-11-11 Mark Wielaard + + Reported by john.zigman@anu.edu.au as bug #24608. + * gnu/java/nio/SocketChannelImpl.java (read): Put readBytes in + destination ByteBuffer when it doesn't have an array instead of len + bytes. + 2006-01-05 Tom Tromey * java/lang/natThread.cc (finish_): Don't clear 'group'. diff --git a/libjava/gnu/java/nio/DatagramChannelImpl.java b/libjava/gnu/java/nio/DatagramChannelImpl.java index cb2a607934e..de1d2e6a341 100644 --- a/libjava/gnu/java/nio/DatagramChannelImpl.java +++ b/libjava/gnu/java/nio/DatagramChannelImpl.java @@ -1,5 +1,5 @@ /* DatagramChannelImpl.java -- - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -206,7 +206,7 @@ public final class DatagramChannelImpl extends DatagramChannel try { DatagramPacket packet; - int len = dst.capacity() - dst.position(); + int len = dst.remaining(); if (dst.hasArray()) { diff --git a/libjava/gnu/java/nio/SocketChannelImpl.java b/libjava/gnu/java/nio/SocketChannelImpl.java index 8ca2b575b41..cda86e80723 100644 --- a/libjava/gnu/java/nio/SocketChannelImpl.java +++ b/libjava/gnu/java/nio/SocketChannelImpl.java @@ -1,5 +1,5 @@ /* SocketChannelImpl.java -- - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -225,7 +225,7 @@ public final class SocketChannelImpl extends SocketChannel int offset = 0; InputStream input = socket.getInputStream(); int available = input.available(); - int len = dst.capacity() - dst.position(); + int len = dst.remaining(); if ((! isBlocking()) && available == 0) return 0; @@ -263,7 +263,7 @@ public final class SocketChannelImpl extends SocketChannel } else { - dst.put (data, offset, len); + dst.put (data, offset, readBytes); } return readBytes;