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

Calcul des filtres erroné

    XMLWordImprimable

    Informations

    • Type: Bug interne
    • Etat: Ouverte
    • Priorité: Mineur
    • Résolution: Non résolu
    • Affecte la/les version(s): 6.07.58
    • Version(s) corrigée(s): master, branche 6.7
    • Composants: Search
    • Etiquettes:
    • Valeur métier:
      3
    • Risque:
      2
    • WSJF:
      2,5
    • WSJF : Effort:
      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 demandes

            Activité

              Personnes

              • Responsable:
                camille.lebugle Camille LEBUGLE
                Rapporteur:
                josse.siffert Josse SIFFERT
              • Votes:
                0 Voter pour cette demande
                Gérer les observateurs:
                1 Commencer l'observation de cette demande

                Dates

                • Création:
                  Mise à jour: