diff options
Diffstat (limited to 'libjava/java')
-rw-r--r-- | libjava/java/net/DatagramSocket.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libjava/java/net/DatagramSocket.java b/libjava/java/net/DatagramSocket.java index c9c0f5d0f03..c5920a09424 100644 --- a/libjava/java/net/DatagramSocket.java +++ b/libjava/java/net/DatagramSocket.java @@ -39,6 +39,7 @@ exception statement from your version. */ package java.net; import gnu.java.net.PlainDatagramSocketImpl; +import gnu.java.nio.DatagramChannelImpl; import java.io.IOException; import java.nio.channels.DatagramChannel; import java.nio.channels.IllegalBlockingModeException; @@ -565,7 +566,8 @@ public class DatagramSocket ("Socket connected to a multicast address my not receive"); if (getChannel() != null - && !getChannel().isBlocking ()) + && !getChannel().isBlocking () + && !((DatagramChannelImpl) getChannel()).isInChannelOperation()) throw new IllegalBlockingModeException (); getImpl().receive(p); @@ -618,7 +620,8 @@ public class DatagramSocket // use getTimeToLive for TTL val. if (getChannel() != null - && !getChannel().isBlocking ()) + && !getChannel().isBlocking () + && !((DatagramChannelImpl) getChannel()).isInChannelOperation()) throw new IllegalBlockingModeException (); getImpl().send(p); |