<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    On 03/27/2011 07:16 PM, Alan Bateman wrote:
    <blockquote cite="mid:4D8F70FD.6060008@oracle.com" type="cite">R&eacute;mi
      Forax wrote:
      <br>
      <blockquote type="cite">:
        <br>
        <br>
        &nbsp;&nbsp;&nbsp; ByteArrayInputStream input2 = new ByteArrayInputStream(new
        byte[] {1, 2});
        <br>
        &nbsp;&nbsp;&nbsp; System.out.println(input2.read(new byte[2]));
        <br>
        &nbsp;&nbsp;&nbsp; System.out.println(input2.read(new byte[0]));
        <br>
        <br>
        prints 2 and -1.
        <br>
      </blockquote>
      As it happens I submitted a bug against
      java.io.ByteArrayInputStream some time ago on this:
      <br>
      &nbsp;<a class="moz-txt-link-freetext" href="http://bugs.sun.com/view_bug.do?bug_id=6766844">http://bugs.sun.com/view_bug.do?bug_id=6766844</a>
      <br>
      <br>
      I'd forgotten about that one.
      <br>
      <br>
      -Alan.
      <br>
    </blockquote>
    <br>
    Ok, I've re-read the javadoc of InputStream.read(),<br>
    you're right.<br>
    <br>
    I think the doc of ReadableByteChannel can be improved<br>
    to say that read returns 0 if buffer.hasRemaining() returns 0.<br>
    <br>
    I propose:<br>
    "An attempt is made to read up to <i>r</i> bytes from the channel,<br>
    where <i>r</i> is the number of bytes remaining in the buffer, that
    is, <tt>dst.remaining()</tt>,<br>
    at the moment this method is invoked. <br>
    If <tt>dst.hasRemaining() </tt>is false, then no bytes are read
    and read returns <code>0.<br>
    </code><br>
    R&eacute;mi<code><br>
      <br>
    </code>
    <p><code></code></p>
  </body>
</html>