diff --git a/net/src/main/java/com/zfoo/net/handler/codec/json/JsonWebSocketCodecHandler.java b/net/src/main/java/com/zfoo/net/handler/codec/json/JsonWebSocketCodecHandler.java index 98408122..98e2adbb 100644 --- a/net/src/main/java/com/zfoo/net/handler/codec/json/JsonWebSocketCodecHandler.java +++ b/net/src/main/java/com/zfoo/net/handler/codec/json/JsonWebSocketCodecHandler.java @@ -42,12 +42,16 @@ public class JsonWebSocketCodecHandler extends MessageToMessageCodec= 0) { - var attachmentClass = ProtocolManager.getProtocol(attachmentId).protocolConstructor().getDeclaringClass(); - attachment = (IAttachment) JsonUtils.string2Object(jsonMap.get("attachment"), attachmentClass); + if (!StringUtils.isEmpty(attachmentStr)) { + var attachmentId = Short.parseShort(attachmentStr); + if (attachmentId >= 0) { + var attachmentClass = ProtocolManager.getProtocol(attachmentId).protocolConstructor().getDeclaringClass(); + attachment = (IAttachment) JsonUtils.string2Object(jsonMap.get("attachment"), attachmentClass); + } } + var protocolClass = ProtocolManager.getProtocol(protocolId).protocolConstructor().getDeclaringClass(); var packet = JsonUtils.string2Object(packetStr, protocolClass); list.add(DecodedPacketInfo.valueOf((IPacket) packet, attachment));