-
Bug interne
-
Résolution: Non résolu
-
Mineur
-
6.07.58
-
5
-
2
-
3,5
-
2
Je constate un comportement qui me semble relever de l'anomalie dans le calcul des options de recherche (je dis bien "semble" car j'ai quelques difficultés à comprendre le fonctionnement complet).
La méthode SearchOptionFeeder#generateSearchOptions se base sur les paramètres de la requête pour déterminer les options à construire pour la recherche, options qui dépendent notamment du SearchParameterBean :
- La méthode susmentionnée commence par initialiser le beanKey à vide (cf. https://git.kosmos.fr/projects/KORE/repos/koreparent/browse/search/src/main/java/com/kosmos/search/query/bean/SearchOptionFeeder.java?at=refs%2Fheads%2Frelease%2F6.07#34).
- Elle essaye ensuite de récupérer le SearchParameterBean associé en gérant un fallback sur celui par défaut (cf. https://git.kosmos.fr/projects/KORE/repos/koreparent/browse/search/src/main/java/com/kosmos/search/query/bean/SearchOptionFeeder.java?at=refs%2Fheads%2Frelease%2F6.07#50). On a donc forcément à ce moment-là le SearchParameterBean par défaut.
- Un filtrage des filtres est ensuite effectué à partir des filtres déduits des paramètres de la requête (cf. https://git.kosmos.fr/projects/KORE/repos/koreparent/browse/search/src/main/java/com/kosmos/search/query/bean/SearchOptionFeeder.java?at=refs%2Fheads%2Frelease%2F6.07#46) et de l'exclusion des filtres portée par le SearchParameterBean (cf. https://git.kosmos.fr/projects/KORE/repos/koreparent/browse/search/src/main/java/com/kosmos/search/query/bean/SearchOptionFeeder.java?at=refs%2Fheads%2Frelease%2F6.07#57)
Dans mon cas, le SearchParameterBean par défaut exclut des filtres qui sont justement spécifiques au SearchParameterBean que j'ai en paramètre.
Ce faisant, mes filtres ne sont pas pris en compte malgré la définition (et le passage en paramètre de ma requête) d'un SearchParameterBean spécifique.
J'arrive à faire fonctionner ma recherche en modifiant la méthode susmentionnée pour "corriger" la récupération du beanKey :
public SearchOptions generateSearchOptions(final Map<String, String[]> parameterMap) { SearchOptions searchOptions = new SearchOptions(); String beanKey = StringUtils.EMPTY; final String[] beanKeys = parameterMap.get(BeanKeyQueryParamResolver.PARAM); if (ArrayUtils.isNotEmpty(beanKeys)) { beanKey = beanKeys[0]; }
Je vous partage donc mon analyse en espérant avoir une explication sur la probable incompréhension à laquelle je me heurte.
- mentioned in
-
Page Chargement