Conserver l'état et éviter les récursivités infinies

Un identificateur unique (UID) est associé à chaque appel dans le gestionnaire de modules d'extension.

L'identificateur unique facilite la consignation, la détection d'une récursivité infinie et la conservation de l'état entre les appels de méthode PreExit et PostExit, comme illustré dans le scénario ci-après.

Figure 1. Eviter les récursivités infinies
Eviter les récursivités infinies

Ce scénario illustre une occurrence de récursivité infinie :

Cependant, dans la première étape, la méthode preExit du gestionnaire de modules d'extension insère un identificateur unique dans l'objet Context de l'objet de données. La valeur de l'identificateur unique est un objet list pour lequel un nouvel identificateur unique est ajouté lors du deuxième appel.

Les abonnés sont chargés d'effectuer des vérifications pour éviter une récursivité infinie pour les raisons suivantes :

Vous pouvez utiliser le même identificateur unique pour la conservation de l'état entre les divers appels d'abonné. Si l'abonné appelle un nouvel émetteur de sujets, vous devez copier l'identificateur unique dans le nouvel objet de données afin d'éviter une récursivité infinie. La conservation d'état permet à un abonné de corréler l'appel de méthode preExit à l'appel de méthode postExit.



Conditions d'utilisation | Commentaires