docs: @SuppressWarnings("unchecked")
  	public <S extends Space> SynchronizedCollection<S> getSpaces(final Class<? extends SpaceSpecification<S>> spec) {
  		synchronized (getSpaceRepositoryMutex()) {
  			return Collections3
  					.synchronizedCollection((Collection<S>) Collections2.filter(this.spaces.values(), new Predicate<Space>() {
  						@Override
  						public boolean apply(Space input) {
  							return input.getSpaceID().getSpaceSpecification().equals(spec);
  						}
  					}), getSpaceRepositoryMutex());
  		}
  	}