diff options
author | Mark Spruiell <mes@zeroc.com> | 2009-06-26 14:59:11 -0700 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2009-06-26 14:59:11 -0700 |
commit | 3a5f968f8487eb1f91769ab8704a9609dcbe9efe (patch) | |
tree | 469fc394f1e1e9ba0ef615c991faa524af4a21d0 /java/src/IceInternal/UdpTransceiver.java | |
parent | updating CHANGES for bug 4126 (diff) | |
download | ice-3a5f968f8487eb1f91769ab8704a9609dcbe9efe.tar.bz2 ice-3a5f968f8487eb1f91769ab8704a9609dcbe9efe.tar.xz ice-3a5f968f8487eb1f91769ab8704a9609dcbe9efe.zip |
more fixes for bug 4126
Diffstat (limited to 'java/src/IceInternal/UdpTransceiver.java')
-rw-r--r-- | java/src/IceInternal/UdpTransceiver.java | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/java/src/IceInternal/UdpTransceiver.java b/java/src/IceInternal/UdpTransceiver.java index e0076beed55..1dec5fde575 100644 --- a/java/src/IceInternal/UdpTransceiver.java +++ b/java/src/IceInternal/UdpTransceiver.java @@ -455,8 +455,14 @@ final class UdpTransceiver implements Transceiver { try { - java.lang.reflect.Constructor<?> c = - Class.forName("java.net.PlainDatagramSocketImpl").getDeclaredConstructor((Class<?>[])null); + Class<?> cls; + + cls = Util.findClass("java.net.PlainDatagramSocketImpl"); + if(cls == null) + { + throw new Ice.SocketException(); + } + java.lang.reflect.Constructor<?> c = cls.getDeclaredConstructor((Class<?>[])null); c.setAccessible(true); java.net.DatagramSocketImpl socketImpl = (java.net.DatagramSocketImpl)c.newInstance((Object[])null); @@ -464,13 +470,16 @@ final class UdpTransceiver implements Transceiver // We have to invoke the protected create() method on the PlainDatagramSocketImpl object so // that this hack works properly when IPv6 is enabled on Windows. // - java.lang.reflect.Method m = - Class.forName("java.net.PlainDatagramSocketImpl").getDeclaredMethod("create", (Class<?>[])null); + java.lang.reflect.Method m = cls.getDeclaredMethod("create", (Class<?>[])null); m.setAccessible(true); m.invoke(socketImpl); - java.lang.reflect.Field channelFd = - Class.forName("sun.nio.ch.DatagramChannelImpl").getDeclaredField("fd"); + cls = Util.findClass("sun.nio.ch.DatagramChannelImpl"); + if(cls == null) + { + throw new Ice.SocketException(); + } + java.lang.reflect.Field channelFd = cls.getDeclaredField("fd"); channelFd.setAccessible(true); java.lang.reflect.Field socketFd = java.net.DatagramSocketImpl.class.getDeclaredField("fd"); |