@Override protected Object filterOutboundMessage(Object msg) { if (msg instanceof DatagramPacket) { DatagramPacket p = (DatagramPacket) msg; ByteBuf content = p.content(); if (isSingleDirectBuffer(content)) { return p; } return new DatagramPacket(newDirectBuffer(p, content), p.recipient()); } if (msg instanceof ByteBuf) { ByteBuf buf = (ByteBuf) msg; if (isSingleDirectBuffer(buf)) { return buf; } return newDirectBuffer(buf); } if (msg instanceof AddressedEnvelope) { @SuppressWarnings("unchecked") AddressedEnvelope<Object, SocketAddress> e = (AddressedEnvelope<Object, SocketAddress>) msg; if (e.content() instanceof ByteBuf) { ByteBuf content = (ByteBuf) e.content(); if (isSingleDirectBuffer(content)) { return e; } return new DefaultAddressedEnvelope<ByteBuf, SocketAddress>( newDirectBuffer(e, content), e.recipient()); } } throw new UnsupportedOperationException( "unsupported message type: " + StringUtil.simpleClassName(msg) + EXPECTED_TYPES); }