void setInternalId(String id) {
    // it's okay for this to be set more than once; a RuntimeIterator
    // can be bound to a scope to compute dependencies, then
    // re-bound to a different scope later at eval time.
    // Support.Assert((internalId == null), "Internal ID is already set");
    Support.Assert((id != null), "Internal ID can not be null");
    internalId = id;
  }
(Re)evaluate in the context of the current iterations through the cross-product. If this
iterator is not dependent on the current iteration, then just return the previously evaluated
collection. Otherwise, re-evaluate. Returns null if the collection itself is null or UNDEFINED
geode-core/src/main/java/org/apache/geode/cache/query/internal/RuntimeIterator.java