- builder.setType(errorType.getIntValue());
- OFDeserializer<ExperimenterIdError> deserializer = registry.getDeserializer(new MessageCodeKey(
- EncodeConstants.OF13_VERSION_ID, EncodeConstants.EXPERIMENTER_VALUE, ErrorMessage.class));
- ExperimenterIdError error = deserializer.deserialize(rawMessage);
- builder.addAugmentation(ExperimenterIdError.class, error);
- } else {
- decodeType(builder, errorType, type);
- decodeCode(rawMessage, builder, errorType);
- if (rawMessage.readableBytes() > 0) {
- builder.setData(rawMessage.readBytes(rawMessage.readableBytes()).array());
- }
+ OFDeserializer<ErrorMessage> deserializer = registry.getDeserializer(
+ ExperimenterDeserializerKeyFactory.createExperimenterErrorDeserializerKey(
+ EncodeConstants.OF13_VERSION_ID, rawMessage.getUnsignedInt(
+ rawMessage.readerIndex() + EncodeConstants.SIZE_OF_SHORT_IN_BYTES)));
+ rawMessage.readerIndex(startIndex);
+ return deserializer.deserialize(rawMessage);
+ }
+ decodeType(builder, errorType, type);
+ decodeCode(rawMessage, builder, errorType);
+ if (rawMessage.readableBytes() > 0) {
+ builder.setData(rawMessage.readBytes(rawMessage.readableBytes()).array());