@Override
    public boolean hasNext() {
      if (context.getErrorInfoCollector().hasErrors()) {
        return false;
      }

      try {
        return iterator.hasNext();
      } catch (Throwable t) {
        supervisor.error(context.getErrorInfoCollector(), new ErrorInfo(providerInfo.getDataProviderMethod(), t, getErrorContext()));
        return false;
      }
    }
Creates a multiplier that is backed by data providers and on-the-fly multiplies them as they are processed.

@param dataVariableMultiplication the multiplication for which to create the multiplier
@param dataProviderOffset the index of the first data provider for the given multiplication
@return the data provider multiplier
spock-core/src/main/java/org/spockframework/runtime/DataIteratorFactory.java