code: @Override
  	public Collection<Event> findEvents(final SearchCriteria criteria) {
  		if (criteria == null) {
  			throw new IllegalArgumentException("criteria must be non-null");
  		}
  
  		Collection<Event> matches = new ArrayList<>();
  
  		try {
  			RiakSet set = client.execute(
  					new FetchSet.Builder(events)
  							.build()
  			).getDatatype();
  			for(BinaryValue binaryValue: set.view()) {
  				Event event = gson.fromJson(binaryValue.toStringUtf8(), Event.class);
  				if (isMatchingEvent(criteria, event)) {
  					matches.add(event);
  				}
  			}
  		} catch (ExecutionException e) {
  			logger.error("Fetching event from RiakDB failed", e);
  			e.printStackTrace();
  		} catch (InterruptedException e) {
  			logger.error("Fetching event from RiakDB was interrupted", e);
  			e.printStackTrace();
  		}
  
  		return matches;
  	}
docs: {@inheritDoc}