code: @Override
      public void close() throws DataSourceReadException {
          List<DataSourceReadException> exceptions =
                  new ArrayList<>();
          if (this.itr != null) {
              this.itr.close();
          }
          this.processor.close();
          for (DataStreamingEventIterator<Proposition> it : this.itrs) {
              try {
                  it.close();
              } catch (DataSourceReadException fe) {
                  exceptions.add(fe);
              }
          }
          if (!exceptions.isEmpty()) {
              List<StackTraceElement> stes = new ArrayList<>();
              for (Exception ex : exceptions) {
                  Arrays.addAll(stes, ex.getStackTrace());
              }
              
              DataSourceReadException ex = new DataSourceReadException(
                      exceptions.size() + " data source backend(s) failed");
              ex.setStackTrace(stes.toArray(new StackTraceElement[stes.size()]));
              throw ex;
          }
      }
docs: Calls the underlying {@link DataStreamingEventIterator}s
  {@link DataStreamingEventIterator#close() } method.
  
  @throws DataSourceReadException