Allow null sender when using DatagramPacketEncoder (#9204)
Motivation: It is valid to use null as sender so we should support it when DatagramPacketEncoder checks if it supports the message. Modifications: - Add null check - Add unit test Result: Fixes https://github.com/netty/netty/issues/9199.
This commit is contained in:
parent
a63584715f
commit
4b8db65b16
@ -64,7 +64,7 @@ public class DatagramPacketEncoder<M> extends MessageToMessageEncoder<AddressedE
|
|||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
AddressedEnvelope envelope = (AddressedEnvelope) msg;
|
AddressedEnvelope envelope = (AddressedEnvelope) msg;
|
||||||
return encoder.acceptOutboundMessage(envelope.content())
|
return encoder.acceptOutboundMessage(envelope.content())
|
||||||
&& envelope.sender() instanceof InetSocketAddress
|
&& (envelope.sender() instanceof InetSocketAddress || envelope.sender() == null)
|
||||||
&& envelope.recipient() instanceof InetSocketAddress;
|
&& envelope.recipient() instanceof InetSocketAddress;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -51,8 +51,17 @@ public class DatagramPacketEncoderTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testEncode() {
|
public void testEncode() {
|
||||||
|
testEncode(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testEncodeWithSenderIsNull() {
|
||||||
|
testEncode(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void testEncode(boolean senderIsNull) {
|
||||||
InetSocketAddress recipient = SocketUtils.socketAddress("127.0.0.1", 10000);
|
InetSocketAddress recipient = SocketUtils.socketAddress("127.0.0.1", 10000);
|
||||||
InetSocketAddress sender = SocketUtils.socketAddress("127.0.0.1", 20000);
|
InetSocketAddress sender = senderIsNull ? null : SocketUtils.socketAddress("127.0.0.1", 20000);
|
||||||
assertTrue(channel.writeOutbound(
|
assertTrue(channel.writeOutbound(
|
||||||
new DefaultAddressedEnvelope<>("netty", recipient, sender)));
|
new DefaultAddressedEnvelope<>("netty", recipient, sender)));
|
||||||
DatagramPacket packet = channel.readOutbound();
|
DatagramPacket packet = channel.readOutbound();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user