cdm/src/main/java/ucar/nc2/ft/point/PointIteratorFiltered.java
@Override
    public boolean hasNext() {
        if (pointFeature != null) {
            return true;  // pointFeature hasn't yet been consumed.
        }
        
        pointFeature = nextFilteredDataPoint();
        if (pointFeature == null) {
            close();
            return false;
        } else {
            return true;
        }
    }
@Override
    public boolean hasNext() {
        if (pointFeature != null) {
            return true;  // pointFeature hasn't yet been consumed.
        }
        
        pointFeature = nextFilteredDataPoint();
        if (pointFeature == null) {
            close();
            return false;
        } else {
            return true;
        }
    }
PointFeatureIterator.hasNext() doesn't guarantee idempotency, but we do.