Correction de l’exception jcr:mixinTypes ValueFormatException dans les versions AEM

Les versions de pipeline dans Adobe Experience Manager (AEM) as a Cloud Service échouent en raison d’un lot de org.apache.sling.jcr.repoinit obsolète. Ce problème se produit lorsqu’un script repoInit affecte incorrectement une valeur unique à une propriété JCR à plusieurs valeurs, déclenchant une ValueFormatException. Cet article explique la cause première et décrit les étapes à suivre pour résoudre le problème en mettant à jour le lot et en corrigeant le script.

Description description

Environnement

  • Adobe Experience Manager (AEM) as a Cloud Service - Sites
  • La version actuelle org.apache.sling.jcr.repoinit lot est la version 1.1.38. La version 1.154 ou ultérieure est requise.
  • Les échecs de pipeline se produisent par intermittence pendant les déploiements. Les déploiements d’environnements de développement réussissent généralement.

Problème/Symptômes

La création du pipeline échoue avec l’erreur suivante :

Exception dans un SlingRepositoryInitializer, l’enregistrement du service SlingRepository a interrompu javax.jcr.RepositoryException : l’application de l’opération repoinit a échoué malgré la reprise ; définissez loglevel sur DEBUG pour afficher toutes les exceptions. Dernier message d’exception provenant de l’adresse « Configuration PID 313[ script 0] » : Impossible de définir les propriétés sur le chemin [ /conf/somepath ] : javax.jcr.ValueFormatException : Impossible d’attribuer une seule valeur à une propriété à plusieurs valeurs : jcr:mixinTypes = mix:lockable

Cause principale

Le script repoInit tente d'affecter jcr:mixinTypes comme une valeur unique au lieu d’un tableau à plusieurs valeurs. Cela entraîne une exception ValueFormatException non gérée, ce qui entraîne l’échec de l’exécution du pipeline.

Résolution resolution

Pour résoudre ce problème, procédez comme suit :

  1. Modifiez le script repoInit de sorte que jcr:mixinTypes soit écrit sous la forme d’un tableau à plusieurs valeurs ou supprimez la ligne si les mixins sont déjà présents.
  2. Mettez à niveau le lot org.apache.sling.jcr.repoinit vers la version 1.154 ou ultérieure qui comprend un correctif pour ce problème. Cette mise à jour peut être incluse dans les prochaines versions de Foundation. vérifiez la disponibilité des planifications de versions.
  3. Jusqu’à ce que le lot mis à jour soit disponible, assurez-vous que les scripts repoInit utilisent des tableaux pour les propriétés à plusieurs valeurs.

L’implémentation de ces étapes permet de limiter efficacement les échecs de création de pipeline causés par des erreurs d’initialisation du référentiel.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f