Actions
Bug #413
ferméImplémentation de l'Entity PublicationEJB - Non respect du modèle EJB en cas d'objets non trouvés
Navigateur:
Votre version de Silverpeas:
5.1
Système d'exploitation:
Votre base de données:
PostgreSQL
Livraison en TEST:
Livraison en PROD:
Description
Les méthodes "finder" unitaires (hors collections) ne doivent lever un ObjectNotFoundException et non pas des RuntimeException si la donnée n'est pas trouvée. Cette modification n'a pas d'impact sur le reste du code Java (puisque les méthodes déclarent bien FinderException dans la clause throws et que ces exceptions sont donc bien traitées, et probablement en levant à leur tour des RuntimeException par exemple) :
- Correction de la méthode ejbFindByPrimaryKey(PublicationPK) pour qu'elle lève une exception de type ObjectNotFoundException lorsque la publication n'est pas trouvée, plutôt qu'un RuntimeException.
- Idem pour la méthode ejbFindByName(PublicationPK, String).
- Idem pour la méthode ejbFindByNameAndNodeId(PublicationPK, String, int).
Ce problème a un impact non négligeable dans le cadre d'une opération unitaire et relativement longue. La moindre erreur de recherche (qui n'est pas forcément une erreur par ailleurs) marque la transaction pour rollback sans possibilité d'intercepter l'erreur de runtime car d'abord prise en compte par le conteneur d'EJB.
Actions