Lesen von Produkten aus dem ProductRepository: Shop lädt nicht mehr

Hallo allerseits, ich versuche gerade einfach mal als Test ein einziges Produkt aus der Datenbank zu lesen. Dafür hab ich einen Subscriber erstellt:

class MySubscriber implements EventSubscriberInterface
{
    public function __construct(EntityRepositoryInterface $productRepository)
    {
        $this->productRepository = $productRepository;
    }

    public static function getSubscribedEvents(): array
    {
        return [
            ProductEvents::PRODUCT_LOADED_EVENT => 'onProductsLoaded'
        ];
    }

    public function onProductsLoaded(EntityLoadedEvent $event): void
    {
        $products = $this->getProducts($event->getContext());

        foreach ($event->getEntities() as $productEntity) {
            $productEntity->addExtension('my_test', $products);
        }
    }

    private function getProducts(Context $context): EntityCollection
    {
        $criteria = new Criteria();
        $criteria->setLimit(1);

        // Page starts loading infinitely when I uncomment the next line...

        // $productCollection = $this->productRepository->search($criteria, $context)->getEntities();

        // return $productCollection;
    }
}

Services.xml:

Der Subscriber wird richtig geladen, aber wenn ich die Zeile 

$productCollection = $this->productRepository->search($criteria, $context)->getEntities();

schreibe lädt mein Shop gar nicht mehr. “productRepository” ist aber wirklich das Repository, und $criteria und $context scheinen auch zu passen.

Ist bei meinem Code etwas falsch oder könnte das ein tieferes Problem sein? Danke schon mal im Voraus :) 

Okay, jetzt habe ich herausgefunden warum es nicht funktioniert hat:

In der search Funktion des Repositories wird die read Funktion ausgeführt, und in der wird das ProductLoaded Event gefeuert. Das hat mein Subscriber dann wieder abgefangen, usw usw.