code: @Override
      @SuppressWarnings("unchecked")
      protected synchronized Object fetch() {
          final Collection<T> c = (Collection<T>) object;
          c.clear();
  
          final int numberOfEntitiesExpected = listOfKeys.size();
          // does not retain order:
          // List<T> retrievedEntities = p.get().getByKeys(referenceObjClass,
          // (List) __getKeysAsList());
  
          // so we do it the lousy way: FIXME
          final List<T> retrievedEntities = new ArrayList<T>(listOfKeys.size());
          for (final Key<?> k : listOfKeys) {
              T entity = (T) getDatastore().getByKey(referenceObjClass, k);
              if (entity != null) {
                  retrievedEntities.add(entity);
              }
          }
  
          if (!ignoreMissing && (numberOfEntitiesExpected != retrievedEntities.size())) {
              throw new LazyReferenceFetchingException(format("During the lifetime of a proxy of type '%s', some referenced Entities"
                                                                  + " of type '%s' have disappeared from the Datastore.",
                                                              c.getClass().getSimpleName(), referenceObjClass.getSimpleName()));
          }
  
          c.addAll(retrievedEntities);
          return c;
      }
docs: CHECKSTYLE:ON