@Override
  public <K, V> Region<K, V> createVMRegion(String name, RegionAttributes<K, V> p_attrs,
      InternalRegionArguments internalRegionArgs)
      throws RegionExistsException, TimeoutException, IOException, ClassNotFoundException {
    if (internalRegionArgs != null) {
      if (internalRegionArgs.isInternalRegion()
          || internalRegionArgs.isUsedForPartitionedRegionBucket()
          || internalRegionArgs.isUsedForMetaRegion()
          || internalRegionArgs.isUsedForSerialGatewaySenderQueue()
          || internalRegionArgs.isUsedForParallelGatewaySenderQueue()) {
        throw new NotAuthorizedException("The region " + name
            + " is an internal region that a client is never allowed to create");
      }
    }
    return delegate.createVMRegion(name, p_attrs, internalRegionArgs);
  }
This method can be used to locate an internal region.
It should not be invoked with a region name obtained
from a client.
geode-core/src/main/java/org/apache/geode/internal/cache/InternalCacheForClientAccess.java