void create(Region parent) throws TimeoutException, CacheWriterException, RegionExistsException {

    // Validate the attributes before creating the sub-region
    attrs.inheritAttributes(parent.getCache());
    attrs.prepareForValidation();
    attrs.setIndexes(indexes);

    Region me = null;
    try {
      me = parent.createSubregion(name, new AttributesFactory(attrs).create());
    } catch (RegionExistsException ex) {
      me = ex.getRegion();
      setMutableAttributes(me);
    } catch (RegionDestroyedException ex) {
      // Region was concurrently destroyed.
      cache.getLogger().warning(
          String.format("Region was globally destroyed during cache initialization: %s",
              name));
      // do nothing
    }

    if (me != null) {
      // Register named region attributes
      String id = attrs.getId();
      if (id != null) {
        RegionAttributes realAttrs = me.getAttributes();
        me.getCache().setRegionAttributes(id, realAttrs);
      }

      fillIn(me);
    }
  }
Creates a {@link Region} with the given parent using the description provided by this
<code>RegionCreation</code>.
geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/RegionCreation.java