private Collection getCacheVmsCollection() throws AdminException {
    synchronized (cacheServerSet) {
      Collection coll = new ArrayList(cacheServerSet.size());
      SERVERS: for (final Object o : cacheServerSet) {
        Future future = (Future) o;
        Object get = null;
        for (;;) {
          checkCancellation();
          boolean interrupted = Thread.interrupted();
          try {
            get = future.get();
            break; // success
          } catch (InterruptedException ex) {
            interrupted = true;
            continue; // keep trying
          } catch (CancellationException ex) {
            continue SERVERS;
          } catch (ExecutionException ex) {
            handle(ex);
            return null; // Dead code
          } finally {
            if (interrupted) {
              Thread.currentThread().interrupt();
            }
          }
        } // for
        coll.add(get);
      } // SERVERS
      return coll;
    }
  }
A "template factory" method for creating an instance of <code>GemFireHealth</code>. It can be
overridden by subclasses to produce instances of different <code>GemFireHealth</code>
implementations.

@see #getGemFireHealth
geode-core/src/main/java/org/apache/geode/admin/internal/AdminDistributedSystemImpl.java