code: private synchronized int getNewClientID() {
          if ((clientIDGenerator + 1) >= Integer.MAX_VALUE) {
              //if we can't find a reusable ID within the first 100 slots, then fail.
              //Revisit: I don't want to loop through all 2+ billion entries to find that they are all taken, as this
              //could be seem as a DoS, but maybe some better heuristics for finding an empty ID? not sure if we will ever be
              //in this situation...
              final int limit = Integer.MIN_VALUE + 100;
              for (int i = Integer.MIN_VALUE; i < limit; i++) {
                  if (inboxes.get(i) == null) {
                      return i;
                  }
              }
  
              //Emit the warning
              Tr.warning(tc, "jmx.connector.server.rest.notification.limit.warning");
  
              throw ErrorHelper.createRESTHandlerJsonException(new RuntimeException("The server has reached its limit of new client notifications."),
                                                               JSONConverter.getConverter(),
                                                               APIConstants.STATUS_SERVICE_UNAVAILABLE);
          }
  
          return clientIDGenerator++;
      }
docs: This synchronized method will assign an unique ID to a new notification client