Details
-
Bug
-
Resolution: Unresolved
-
Minor
-
xCM 5.0 SP5
-
None
Description
Bonjour,
Il me semble avoir découvert un bug qui doit se trouver dans la méthode CategoryServiceImpl.removeObjectKeyFromCategory()
Voici le scenario, ainsi que les résultats que je peux observer dans l'engine updatecontainer, dans la table jahia_links, et dans la table jahia_fields_data pour la metadata des catégories
( mes requêtes SQL avec l'id de mon container = 1400 :
select * from jahia_link where left_oid like '%_1400' or right_oid like '%_1400'
select value_jahia_fields_data, * from jahia_fields_data where id_jahia_obj = 1400 and type_jahia_fields_data = 14 order by workflow_state asc
)
[Etape 1] Création du container :
- engine : aucune catégorie sélectionnée
- jahia_links : 0 ligne pour le container
- jahia_fields_data : 1 ligne avec worflow_state = 1 et value_jahia_fields_data = null
=> OK
[Etape 2] Clic sur le lien qui permet d'exécuter addObjectKeyToCategory :
- engine : la catégorie myCategory est sélectionnée
- jahia_links : 1 ligne pour le container
- jahia_fields_data :
1 ligne avec worflow_state = 0 et value_jahia_fields_data = null
1 ligne avec worflow_state = 1 et value_jahia_fields_data = myCategory
=> OK
[Etape 3] Clic sur le lien qui permet d'exécuter removeObjectKeyToCategory :
- engine : aucune catégorie sélectionnée
- jahia_links : 0 ligne pour le container
- jahia_fields_data :
1 ligne avec worflow_state = 0 et value_jahia_fields_data = null
1 ligne avec worflow_state = 1 et value_jahia_fields_data = myCategory
=> KO : il y a une incohérence entre le contenu de la table jahia_fields_data et le contenu de la table jahia_links
Cette incohérence est visible sur le site :
myCategory.getChildContentObjects() ne retrouve pas ce lien
<query:equalTo propertyName="${queryConstants.DEFAULT_CATEGORY}" value="myCategory" metadata="true" multiValue="true" /> retrouve le lien
[Etape 4] Clic sur le lien qui permet d'exécuter addObjectKeyToCategory :
- engine * la catégorie myCategory est sélectionnée
- jahia_links : 1 ligne pour le container
- jahia_fields_data :
1 ligne avec worflow_state = 0 et value_jahia_fields_data = null
1 ligne avec worflow_state = 0 et value_jahia_fields_data = myCategory
1 ligne avec worflow_state = 1 et value_jahia_fields_data = myCategory$$$myCategory
Le problème semble venir du fait que j'utilise comme format pour la clef de ma catégorie xxx@@yyy et je me retrouve avec xxx#64;#64;yyy$$$xxx@@yyy
Il semblerait donc qu'il y ait une incohérence entre les méthodes removeObjectKeyToCategory() et addObjectKeyToCategory().
L'une effectuant une transformation du caractère "@" (et certainement d'autres) alors que l'autre méthode ne le fait pas.
Cordialement,
Sébastien