summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/UdpTransceiver.java
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2009-06-26 14:59:11 -0700
committerMark Spruiell <mes@zeroc.com>2009-06-26 14:59:11 -0700
commit3a5f968f8487eb1f91769ab8704a9609dcbe9efe (patch)
tree469fc394f1e1e9ba0ef615c991faa524af4a21d0 /java/src/IceInternal/UdpTransceiver.java
parentupdating CHANGES for bug 4126 (diff)
downloadice-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.java21
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");