@Override
  public void fromData(DataInput in,
      DeserializationContext context) throws IOException, ClassNotFoundException {
    super.fromData(in, context);

    version = DataSerializer.readString(in);
    replyProcessorId = in.readInt();
    isMcastEnabled = in.readBoolean();
    isTcpDisabled = in.readBoolean();

    int serializerCount = in.readInt();
    for (int i = 0; i < serializerCount; i++) {
      String cName = DataSerializer.readNonPrimitiveClassName(in);

      int id = in.readInt(); // id
      try {
        if (cName != null) {
          InternalDataSerializer.register(cName, false, null, null, id);
        }
      } catch (IllegalArgumentException ex) {
        recordFromDataProblem(
            String.format("IllegalArgumentException while registering a DataSerializer: %s",
                ex));
      }
    }

    int instantiatorCount = in.readInt();
    for (int i = 0; i < instantiatorCount; i++) {
      String instantiatorClassName = DataSerializer.readNonPrimitiveClassName(in);
      String instantiatedClassName = DataSerializer.readNonPrimitiveClassName(in);
      int id = in.readInt();

      try {
        if (instantiatorClassName != null && instantiatedClassName != null) {
          InternalInstantiator.register(instantiatorClassName, instantiatedClassName, id, false);
        }
      } catch (IllegalArgumentException ex) {
        recordFromDataProblem(
            String.format("IllegalArgumentException while registering an Instantiator: %s",
                ex));
      }
    } // for

    interfaces = context.getDeserializer().readObject(in);
    distributedSystemId = in.readInt();
    redundancyZone = DataSerializer.readString(in);
    enforceUniqueZone = in.readBoolean();

    StartupMessageData data = new StartupMessageData();
    data.readFrom(in);
    hostedLocatorsAll = data.readHostedLocators();
    isSharedConfigurationEnabled = data.readIsSharedConfigurationEnabled();
    mcastPort = data.readMcastPort();
    mcastHostAddress = data.readMcastHostAddress();
  }
Notes a problem that occurs while invoking
{@link DataSerializableFixedID#fromData(DataInput, DeserializationContext)}.
geode-core/src/main/java/org/apache/geode/distributed/internal/StartupMessage.java