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 0167b4982e..bbb89b4f29 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 @@ -65,9 +65,8 @@ public final class NioDatagramChannel private static final SelectorProvider DEFAULT_SELECTOR_PROVIDER = SelectorProvider.provider(); private final DatagramChannelConfig config; - private final Map> memberships = - new HashMap>(); + private Map> memberships; private RecvByteBufAllocator.Handle allocHandle; private static DatagramChannel newSocket(SelectorProvider provider) { @@ -368,7 +367,12 @@ public final class NioDatagramChannel } synchronized (this) { - List keys = memberships.get(multicastAddress); + List keys = null; + if (memberships == null) { + memberships = new HashMap>(); + } else { + keys = memberships.get(multicastAddress); + } if (keys == null) { keys = new ArrayList(); memberships.put(multicastAddress, keys);