Image du projet 'Socle K-Sup' téléversée
  1. Socle K-Sup
  2. CORE-6065

Calcul des filtres erroné

XMLWordImprimable

    • Icon: Bug interne Bug interne
    • Résolution: Non résolu
    • Icon: Mineur Mineur
    • master, branche 6.7
    • 6.07.58
    • Search
    • 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 :

      1. 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).
      2. 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.
      3. 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.

            camille.lebugle Camille LEBUGLE
            josse.siffert Josse SIFFERT
            Votes:
            0 Voter pour ce ticket
            Gérer les observateurs:
            1 Démarre l'observation de ce ticket

              Création:
              Mise à jour: