docs: byte[] createMessageID() {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "createMessageID");
  
          // Note there is no need to take a lock around this update piece of
          // code because the synchronisation code guarantees we will be single
          // threaded through this method.
  
          // Increment the least significant 8 bytes by 1 to provide the counter
          // index.
          int currentOffset = currentMessageID.length;
          int counterEndPosition = currentMessageID.length - 8;
  
          do {
              // Look at the next position to the left (the first time around this brings
              // the offset inside the width of the array).
              currentOffset--;
              // Increment the current position.
              currentMessageID[currentOffset]++;
              // If the increment caused a rollover then we want to move on to the
              // next position, unless we have already reached the end of the long.
          } while ((currentMessageID[currentOffset] == 0) && (currentOffset > counterEndPosition));
  
          // The next instructions that happen on this thread will be MFP copying the byte[].
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "createMessageID", currentMessageID);
          return currentMessageID;
      }