diff --git a/transport/src/main/java/io/netty/channel/socket/nio/NioDatagramChannel.java b/transport/src/main/java/io/netty/channel/socket/nio/NioDatagramChannel.java index b3eb5a21db..dd39410259 100644 --- a/transport/src/main/java/io/netty/channel/socket/nio/NioDatagramChannel.java +++ b/transport/src/main/java/io/netty/channel/socket/nio/NioDatagramChannel.java @@ -83,9 +83,7 @@ public final class NioDatagramChannel return newSocket(); } - if (PlatformDependent.javaVersion() < 7) { - throw new UnsupportedOperationException(); - } + checkJavaVersion(); try { return DatagramChannel.open(ProtocolFamilyConverter.convert(ipFamily)); @@ -94,6 +92,12 @@ public final class NioDatagramChannel } } + private static void checkJavaVersion() { + if (PlatformDependent.javaVersion() < 7) { + throw new UnsupportedOperationException("Only supported on java 7+."); + } + } + /** * Create a new instance which will use the Operation Systems default {@link InternetProtocolFamily}. */ @@ -350,39 +354,39 @@ public final class NioDatagramChannel public ChannelFuture joinGroup( InetAddress multicastAddress, NetworkInterface networkInterface, InetAddress source, ChannelPromise promise) { - if (PlatformDependent.javaVersion() >= 7) { - if (multicastAddress == null) { - throw new NullPointerException("multicastAddress"); - } - if (networkInterface == null) { - throw new NullPointerException("networkInterface"); - } + checkJavaVersion(); - try { - MembershipKey key; - if (source == null) { - key = javaChannel().join(multicastAddress, networkInterface); - } else { - key = javaChannel().join(multicastAddress, networkInterface, source); - } - - synchronized (this) { - List keys = memberships.get(multicastAddress); - if (keys == null) { - keys = new ArrayList(); - memberships.put(multicastAddress, keys); - } - keys.add(key); - } - - promise.setSuccess(); - } catch (Throwable e) { - promise.setFailure(e); - } - } else { - throw new UnsupportedOperationException(); + if (multicastAddress == null) { + throw new NullPointerException("multicastAddress"); } + + if (networkInterface == null) { + throw new NullPointerException("networkInterface"); + } + + try { + MembershipKey key; + if (source == null) { + key = javaChannel().join(multicastAddress, networkInterface); + } else { + key = javaChannel().join(multicastAddress, networkInterface, source); + } + + synchronized (this) { + List keys = memberships.get(multicastAddress); + if (keys == null) { + keys = new ArrayList(); + memberships.put(multicastAddress, keys); + } + keys.add(key); + } + + promise.setSuccess(); + } catch (Throwable e) { + promise.setFailure(e); + } + return promise; } @@ -425,9 +429,8 @@ public final class NioDatagramChannel public ChannelFuture leaveGroup( InetAddress multicastAddress, NetworkInterface networkInterface, InetAddress source, ChannelPromise promise) { - if (PlatformDependent.javaVersion() < 7) { - throw new UnsupportedOperationException(); - } + checkJavaVersion(); + if (multicastAddress == null) { throw new NullPointerException("multicastAddress"); } @@ -479,36 +482,34 @@ public final class NioDatagramChannel public ChannelFuture block( InetAddress multicastAddress, NetworkInterface networkInterface, InetAddress sourceToBlock, ChannelPromise promise) { - if (PlatformDependent.javaVersion() < 7) { - throw new UnsupportedOperationException(); - } else { - if (multicastAddress == null) { - throw new NullPointerException("multicastAddress"); - } - if (sourceToBlock == null) { - throw new NullPointerException("sourceToBlock"); - } + checkJavaVersion(); - if (networkInterface == null) { - throw new NullPointerException("networkInterface"); - } - synchronized (this) { - if (memberships != null) { - List keys = memberships.get(multicastAddress); - for (MembershipKey key: keys) { - if (networkInterface.equals(key.networkInterface())) { - try { - key.block(sourceToBlock); - } catch (IOException e) { - promise.setFailure(e); - } + if (multicastAddress == null) { + throw new NullPointerException("multicastAddress"); + } + if (sourceToBlock == null) { + throw new NullPointerException("sourceToBlock"); + } + + if (networkInterface == null) { + throw new NullPointerException("networkInterface"); + } + synchronized (this) { + if (memberships != null) { + List keys = memberships.get(multicastAddress); + for (MembershipKey key: keys) { + if (networkInterface.equals(key.networkInterface())) { + try { + key.block(sourceToBlock); + } catch (IOException e) { + promise.setFailure(e); } } } } - promise.setSuccess(); - return promise; } + promise.setSuccess(); + return promise; } /**