@Override
 public CacheConfig createCacheConfigIfAbsent(CacheConfig config) {
   final CacheConfig localConfig = configs.putIfAbsent(config.getNameWithPrefix(), config);
   if (localConfig == null) {
     if (config.isStatisticsEnabled()) {
       setStatisticsEnabled(config, config.getNameWithPrefix(), true);
     }
     if (config.isManagementEnabled()) {
       setManagementEnabled(config, config.getNameWithPrefix(), true);
     }
   }
   return localConfig;
 }
  protected AbstractClientInternalCacheProxy(
      CacheConfig cacheConfig,
      ClientContext clientContext,
      HazelcastClientCacheManager cacheManager) {
    super(cacheConfig, clientContext);
    this.cacheManager = cacheManager;
    this.nearCacheManager = clientContext.getNearCacheManager();
    this.asyncListenerRegistrations =
        new ConcurrentHashMap<CacheEntryListenerConfiguration, String>();
    this.syncListenerRegistrations =
        new ConcurrentHashMap<CacheEntryListenerConfiguration, String>();
    this.syncLocks = new ConcurrentHashMap<Integer, CountDownLatch>();

    initNearCache();

    if (nearCache != null) {
      this.statistics =
          new ClientCacheStatisticsImpl(System.currentTimeMillis(), nearCache.getNearCacheStats());
    } else {
      this.statistics = new ClientCacheStatisticsImpl(System.currentTimeMillis());
    }
    this.statisticsEnabled = cacheConfig.isStatisticsEnabled();
  }