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

A l'import d'une fiche avec des plugins, un élément de plugin vide ne supprime pas les plugins existants

XMLWordImprimable

    • Icon: Bug Bug
    • Résolution: Non résolu
    • Icon: Majeur Majeur
    • master, branche 6.8
    • branche 6.7, branche 6.8, 7.0.0-ALPHA-3
    • Aucune

      Dans le XML ci-joint par exemple, le fichier possède dans <PLUGIN> un élément vide (<BrochuresLieesBean/> ou <BrochuresLieesBean> </BrochuresLieesBean>).

      Si la fiche existe déjà dans ksup avant l'import, alors on s'attend à ce que les "Brochures Liées" de cette fiche soit supprimées après l'import.

      Or ce n'est pas le cas.

      Ce bug arrive pour tout plugin qui hérite de la classe DefaultPluginFiche (sans surcharger la méthode deserializeAndSave).

       

      Ce bug provient de la méthode deserializeAndSave dans la classe DefaultPluginFiche.

       

      ...
          CollectionType pluginCollectionType = xmlMapper.getTypeFactory().constructCollectionType(List.class, pluginBeanClass);
      
          try {
              List<? extends PluginBean> importedPluginBeans = xmlMapper.readValue(pluginSerializedContent, pluginCollectionType);
      
      ...
          } catch (IOException e) {
              LOG.error("Impossible de désérialiser le contenu du plugin {}", pluginBeanClass, e);
          }
      ...
      
      

       

      La déserialisation ne fonctionne pas, Jackson dans la méthode "readValue" renvoie une NullPointerException que l'on catch et log.

      https://stackoverflow.com/questions/23702640/xmlmapper-readvalue-return-npe-with-valid-xml-and-empty-values

       

       

            cpoisnel Charles-edouard POISNEL
            arnaud.oisel Arnaud OISEL [X] (Inactif)
            Votes:
            0 Voter pour ce ticket
            Gérer les observateurs:
            2 Démarre l'observation de ce ticket

              Création:
              Mise à jour: