@Override
      public boolean hasNext() {
        while (pos < iterables.size()) {
          if (iter == null) iter = iterables.get(pos).iterator();
          if (iter.hasNext()) return true;
          iter = null;
          pos++;
        }
        return false;
      }
(Partial) replacement for Arrays.copyOfRange, which is only available in JDK6.
spock-core/src/main/java/org/spockframework/util/CollectionUtil.java