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

Calcul des filtres erroné

    XMLWordImprimable

Informations

    • Bug interne
    • Résolution: Non résolu
    • Mineur
    • master, branche 6.7
    • 6.07.58
    • Search
    • 5
    • 2
    • 3,5
    • 2

    Description

      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.

      Pièces jointes

        Liens des tickets

          Activité

            Personnes

              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

              Dates

                Création:
                Mise à jour: