harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anton Luht" <anton.l...@gmail.com>
Subject Re: [classlib][nio]the conflict of RI and spec?
Date Thu, 20 Jul 2006 11:14:53 GMT
Jimmy,

Please add readFile.delete() and writeFile.delete() in the end of test
or .deleteOnExit() in any place. Files created by createTempFile are
not cleaned up automatically.

On 7/19/06, Jimmy, Jing Lv <firepure@gmail.com> wrote:
> Hi:
>
>      I find a conflict that RI does not behave as spec says in
> java.nio.channels.FileChannel.transforFrom(ReadableByteChannel src,
>                               long position,long count).
>      The spec says:"...Fewer than the requested number of bytes will be
> transferred if the source channel has fewer than count bytes
> remaining..."[1]. As expected, invoking this method with a count larger
> than the number of bytes remaining in the ReadableByteChannel, RI should
> return a number of bytes exactly transfered. But in fact, RI throws an
> IOException. I run the test[2] on windowsXP SP2 with RI1.5.0_01 and
> RI1.5.0_06, and on Linux(redhat 9) with RI1.5.0_02 and RI1.5.0_06, and
> get the same result.
>      Currently Harmony behave well on this. I guess this is a bug of RI,
> and Harmony implementation is good. If no objection, I suggest add this
> test to Harmony.
>      Any opinions? Thanks!
>
>
> [1] spec of FileChannel:
> http://java.sun.com/j2se/1.5.0/docs/api/java/nio/channels/FileChannel.html
> [2] the test:
>      public void test_transferFromLReadableByteChannelJJ_overflow()
>              throws Exception {
>          String content = "test content";
>          int length = content.length();
>          File readFile = File.createTempFile("testfile1", "tmp");
>          File writeFile = File.createTempFile("testfile2", "tmp");
>          FileOutputStream fos = new FileOutputStream(readFile);
>          try {
>              fos.write(content.getBytes());
>          } finally {
>              fos.close();
>          }
>          FileChannel fc1 = new FileInputStream(readFile).getChannel();
>          FileChannel fc2 = new FileOutputStream(writeFile).getChannel();
>          try {
>              long result = fc2.transferFrom(fc1, 0, length * 2);
>              assertEquals(length, result);
>          } finally {
>              fc1.close();
>              fc2.close();
>          }
>      }
>
> --
>
> Best Regards!
>
> Jimmy, Jing Lv
> China Software Development Lab, IBM
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
>


-- 
Regards,
Anton Luht,
Intel Middleware Products Division

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Mime
View raw message