public Profile getProfile(ProfileId id) {
    Profile[] allProfiles = profiles; // volatile read
    boolean isIDM = id instanceof InternalDistributedMember;
    for (Profile allProfile : allProfiles) {
      if (isIDM) {
        if (allProfile.getDistributedMember().equals(id)) {
          return allProfile;
        }
      } else {
        if (allProfile.getId().equals(id)) {
          return allProfile;
        }
      }
    }
    return null;
  }
Caller must be synchronized on this. Overridden in BucketAdvisor.
geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionAdvisor.java