code: static synchronized CacheInstanceInfo [] getCacheInstanceInfo( CacheServiceImpl cacheService ) {
  		CacheInstanceInfo infoOut [] = currentCacheInstanceInfoOut;
  		if ( System.currentTimeMillis() - lastPopulate > populateInterval ) {
  			if (cacheService!=null) {
  				if ( cacheInstanceInfo == null ) {
  					cacheInstanceInfo = new CacheInstanceInfo();
  				}
  				cacheService.populateCacheInstanceInfo( cacheInstanceInfo );
  				CacheInstanceInfo.cacheService = cacheService;
  				infoOut = new CacheInstanceInfo[allConfigured.size()];
  				Iterator i = allConfigured.iterator();
  				int x=0;
  				while ( i.hasNext() ) {
  					String cacheName =  (String)i.next();
  					CacheInstanceInfo info = new CacheInstanceInfo();
  
  					info.cacheName      = cacheName;
  					info.isActive       = CacheInstanceInfo.allActive.contains(cacheName);
  					info.isFactory      = CacheInstanceInfo.allFactory.contains(cacheName);
  					info.isFile         = CacheInstanceInfo.allFile.contains(cacheName);
  					info.isObjectCache  = CacheInstanceInfo.objectConfigured.contains(cacheName);
  					info.isServletCache = CacheInstanceInfo.servletConfigured.contains(cacheName);
  
  					infoOut[x++] = info;
  				}
  				currentCacheInstanceInfoOut = infoOut;
  				CacheInstanceInfo.allConfigured.clear();
  				CacheInstanceInfo.allActive.clear();
  				CacheInstanceInfo.allFactory.clear();
  				CacheInstanceInfo.allFile.clear();
  				CacheInstanceInfo.objectConfigured.clear();
  				CacheInstanceInfo.servletConfigured.clear();
  
  			}
  			lastPopulate = System.currentTimeMillis();
  		}
  		return infoOut;
  	}
docs: -----------------------------------------------------------------