MulticastSocket problem on FreeBSD
Kurt Miller
kurt at intricatesoftware.com
Thu Jan 31 19:33:30 PST 2013
Hi Oliver,
On 01/31/13 13:26, Oliver Lehmann wrote:
> Hi,
>
> I encountered a bug while migrating from FreeBSDs old "Diablo jre"
> to openjdk-jre version 6.
>
> I'm running a software using multicast communication and it fails
> on FreeBSD when using openjdk6.
>
> example code:
>
> import java.io.IOException;
> import java.net.InetAddress;
> import java.net.MulticastSocket;
> import java.net.SocketException;
> import java.net.UnknownHostException;
>
>
> class Main {
> static String hostname = new String("10.0.1.1");
>
> public static void main(String args[]) throws
> SocketException, UnknownHostException, IOException{
> InetAddress ia = InetAddress.getByName(hostname);
> MulticastSocket ssdpSocket = new MulticastSocket();
>
> ssdpSocket.setInterface(ia);
>
> System.out.println("network interface: " +
> ssdpSocket.getNetworkInterface());
> System.out.println("interface: " + ssdpSocket.getInterface());
> }
> }
>
>
> The output of the old "Diablo JRE" is:
>
> network interface: name:null index: -1 addresses:
> /10.0.1.1;
>
> interface: /10.0.1.1
>
>
> The output of openJDK6 is:
>
> network interface: name:null
> interface: /0.0.0.0
>
> It always returns this information.
> For comparison - openjdk on Linux:
>
> network interface: name:eth0 (eth0)
> interface: /10.0.1.54
>
> Oracle 7 VM on Windows:
>
> network interface: name:eth3 (Realtek PCIe GBE Family Controller)
> interface: /10.0.1.51
I can confirm this is a problem for bsd-port (openjdk7)
on OpenBSD too.
> For me this seems to be an implementation bug of... I don't know?
> PlainDatagramSocketImpl.c maybe?
>
> I tried to debug this further, but did not succeeded to find out if
> either setInterface() failed to set it correctly, or somewhere in
> getInterface() an early return() happens. I tried to remotly debug
> this using Eclipse, but only saw the private variables of ssdpSocket
> which didn't indicated something obvious. Breakpoints inside
> java.net.MulticastSocket would have helped ;)
>
>
More information about the bsd-port-dev
mailing list