public Iterator eventIterator() {
    return new Iterator() {
      int position = 0;

      @Override
      public boolean hasNext() {
        return putAllDataSize > position;
      }

      @Override
      @Unretained
      public Object next() {
        @Unretained
        EntryEventImpl ev = getEventForPosition(position);
        position++;
        return ev;
      }

      @Override
      public void remove() {
        throw new UnsupportedOperationException();
      }
    };
  }
In the originating cache, this returns an iterator on the list of events caused by the putAll
operation. This is cached for listener notification purposes. The iterator is guaranteed to
return events in the order they are present in putAllData[]
geode-core/src/main/java/org/apache/geode/internal/cache/DistributedPutAllOperation.java