@Override
  public CacheStatusResponse handleJoin(
      String cacheName, Address joiner, CacheJoinInfo joinInfo, int viewId) throws Exception {
    waitForView(viewId);
    if (isShuttingDown) {
      log.debugf(
          "Ignoring join request from %s for cache %s, the local cache manager is shutting down",
          joiner, cacheName);
      return null;
    }

    ClusterCacheStatus cacheStatus = initCacheStatusIfAbsent(cacheName);
    return cacheStatus.doJoin(joiner, joinInfo);
  }