docs: @Override
      public final InternalQueryCache createNew(String cacheId) {
          try {
              QueryCacheConfig queryCacheConfig = initQueryCacheConfig(request, cacheId);
              if (queryCacheConfig == null) {
                  // no matching configuration was found, `null` will
                  // be returned to user from IMap#getQueryCache call.
                  return NULL_QUERY_CACHE;
              }
              queryCache = createUnderlyingQueryCache(queryCacheConfig, request, cacheId);
  
              AccumulatorInfo info = toAccumulatorInfo(queryCacheConfig, mapName, cacheId, predicate);
              addInfoToSubscriberContext(info);
  
              info.setPublishable(true);
  
              String publisherListenerId = queryCache.getPublisherListenerId();
              if (publisherListenerId == null) {
                  createSubscriberAccumulator(info);
              }
              createPublisherAccumulator(info);
  
              queryCache.setPublisherListenerId(this.publisherListenerId);
  
          } catch (Throwable throwable) {
              removeQueryCacheConfig(mapName, request.getCacheName());
              throw rethrow(throwable);
          }
  
          return queryCache;
      }