diff options
Diffstat (limited to 'libjava/java/net/DatagramSocket.java')
| -rw-r--r-- | libjava/java/net/DatagramSocket.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/libjava/java/net/DatagramSocket.java b/libjava/java/net/DatagramSocket.java index 96d9555590b..3291efe024a 100644 --- a/libjava/java/net/DatagramSocket.java +++ b/libjava/java/net/DatagramSocket.java @@ -47,9 +47,19 @@ public class DatagramSocket String propVal = System.getProperty("impl.prefix"); if (propVal == null || propVal.equals("")) - propVal = "Plain"; - impl = (DatagramSocketImpl) Class.forName("java.net." + propVal + + impl = new PlainDatagramSocketImpl(); + else + try + { + impl = (DatagramSocketImpl) Class.forName("java.net." + propVal + "DatagramSocketImpl").newInstance(); + } + catch (Exception e) + { + System.err.println("Could not instantiate class: java.net." + + propVal + "DatagramSocketImpl"); + impl = new PlainDatagramSocketImpl(); + } impl.create(); // For multicasting, set the socket to be reused (Stevens pp. 195-6). |
