Projet

Général

Profil

Actions

Bug #384

fermé

Mauvais cast generique dans la déclaration de NodeHome.findByFatherPrimaryKey(NodePK fatherPK)

Ajouté par Anonyme il y a presque 14 ans. Mis à jour il y a presque 14 ans.

Statut:
Closed
Priorité:
Normal
Assigné à:
-
Catégorie:
Publication
Début:
09/05/2010
Echéance:
% réalisé:

100%

Temps estimé:
Navigateur:
Votre version de Silverpeas:
5.1
Système d'exploitation:
Votre base de données:
PostgreSQL
Livraison en TEST:
Livraison en PROD:

Description

Dans l'interface d'EJB Entity com.stratelia.webactiv.util.node.ejb.NodeHome, la méthode findByFatherPrimaryKey(NodePK fatherPK) retourne une collection. L'ajout de "generics" depuis la version 3 de Silverpeas est ici erronée : il est fait mention de collection de clés de type NodePK, alors qu'il s'agit de collections d'entités de type Node.

En effet, la spécification EJB est très claire : pour toute méthode "finder" sur la home d'un EJB Entity, le conteneur retourne une collection de handles (en fait des proxies) d'instances Entity, donc ici des instances de Node.

Il se trouve que cette erreur de déclaration n'a pas eu d'impacts jusqu'à présent car :
1) Partout où la méthode est utilisée, en héritage du code de la V4, il y a des cast (Node) explicites
2) En Java et contrairement à C++, les "generics" ne sont que déclaratifs et automatisent les cast, sans modifier les types (donc le typage de Collection<NodePK> est le même que Collection<Node> et ne contiennent que des Object).

En revanche, dès que du code nouveau exploite cette écriture Java5, il ne compile plus. C'est le cas notamment du code du module de synchronisation inter-Silverpeas.

Actions

Formats disponibles : Atom PDF