DatagramCahnnel scatter/gather problem on diablo 1.6.0_07-b02

Pieter de Goeje pieter at degoeje.nl
Mon Feb 1 00:44:52 UTC 2010


On Monday 01 February 2010 01:01:38 Joe Lin wrote:
> Hi I wrote a sample program trying to use
> DatagramChannel.write(ByteBuffer[] bufs). The exact same code works on
> Windows and Linux. But it fails on the Diablo VM under FreeBSD 7.0 64 bit.
> The exception:
>
> Exception in thread "main" java.io.IOException: Invalid argument
>         at sun.nio.ch.DatagramDispatcher.writev0(Native Method)
>         at sun.nio.ch.DatagramDispatcher.writev(DatagramDispatcher.java:37)
>         at sun.nio.ch.IOUtil.write(IOUtil.java:164)
>         at
> sun.nio.ch.DatagramChannelImpl.write0(DatagramChannelImpl.java:414) at
> sun.nio.ch.DatagramChannelImpl.write(DatagramChannelImpl.java:431) at
> java.nio.channels.DatagramChannel.write(DatagramChannel.java:418) at
> coco.McastSender.main(McastSender.java:68).

I can confirm it also doesn't work on FreeBSD 8/i386 and amd64 using jdk6 or 
openjdk6. I find it odd why it works on Linux because they have exactly the 
same writev(2) as we do. Scatter/gather I/O isn't very often used so I guess 
you're the first one that has run into this problem.

-- 
Pieter de Goeje


More information about the freebsd-java mailing list