@edu.umd.cs.findbugs.annotations.SuppressWarnings(
      value = "ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD",
      justification = "Only applicable in client DS and in that case too multiple instances do not modify it at the same time.")
  public void updateID(DistributedMember idm) {
    try (HeapDataOutputStream hdos = new HeapDataOutputStream(256, KnownVersion.CURRENT)) {
      try {
        DataSerializer.writeObject(idm, hdos);
      } catch (IOException e) {
        throw new InternalGemFireException("Unable to serialize member: " + memberId, e);
      }
      identity = hdos.toByteArray();
    }
    if (memberId != null && memberId == systemMemberId) {
      systemMemberId = idm;
      // client_side_identity = this.identity;
    }
    memberId = idm;
    _toString = null; // make sure we don't retain the old ID representation in toString
  }
call this when the distributed system ID has been modified
geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientProxyMembershipID.java