private void startCache(Attributes atts) {
    if (cache != null) {
      throw new CacheXmlException("Only a single cache or client-cache element is allowed");
    }
    cache = new CacheCreation(true);
    String lockLease = atts.getValue(LOCK_LEASE);
    if (lockLease != null) {
      cache.setLockLease(parseInt(lockLease));
    }
    String lockTimeout = atts.getValue(LOCK_TIMEOUT);
    if (lockTimeout != null) {
      cache.setLockTimeout(parseInt(lockTimeout));
    }
    String searchTimeout = atts.getValue(SEARCH_TIMEOUT);
    if (searchTimeout != null) {
      cache.setSearchTimeout(parseInt(searchTimeout));
    }
    String messageSyncInterval = atts.getValue(MESSAGE_SYNC_INTERVAL);
    if (messageSyncInterval != null) {
      cache.setMessageSyncInterval(parseInt(messageSyncInterval));
    }
    String isServer = atts.getValue(IS_SERVER);
    if (isServer != null) {
      boolean b = Boolean.parseBoolean(isServer);
      cache.setIsServer(b);
    }
    String copyOnRead = atts.getValue(COPY_ON_READ);
    if (copyOnRead != null) {
      cache.setCopyOnRead(Boolean.parseBoolean(copyOnRead));
    }
    stack.push(cache);
  }
When a <code>cache</code> element is first encountered, we create a {@link CacheCreation}and
fill it in appropriately
geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXmlParser.java