Problème

Lors de la mise à niveau d’AEM, l’installation d’un Service Pack (SP) ou d’un Cumulative Fix Pack (CFP), vous trouvez une ConstraintViolationException enregistrée dans le fichier error.log.

Exemple nº 1 :
Dans l’exemple ci-dessous, l’erreur concerne le nœud /content/communities lors de l’installation de AEM 6.3 SP1 CFP2.  Ce nœud est normalement un sling: Folder, mais dans l’environnement avec l’erreur, le nœud est nt: folder.

03.04.2018 16:28:09.921 *ERROR* [http-10.158.146.131:25104-2] org.apache.jackrabbit.vault.packaging.impl.ZipVaultPackage Error during install.
javax.jcr.nodetype.ConstraintViolationException: OakConstraint0001: /content/communities[[nt:folder]]: No matching definition found for child node enablement with effective type [nt:unstructured, rep:AccessControllable]

Exemple nº 2 :
Dans l’exemple ci-dessous, une erreur similaire a interrompu la mise à niveau d’AEM 6.0 à 6.3.  L’installation d’un paquet a échoué parce que le type de nœud de /libs/settings/granite/operations/maintenance/granite_weekly était nt: folder au lieu de sling: Folder.

21.09.2017 12:03:18.132 *ERROR* [OsgiInstallerImpl] com.adobe.granite.installer.factory.packages.impl.PackageTransformer Error while processing install task of day/cq60/product:cq-platform-content:1.3.234.
org.apache.jackrabbit.vault.packaging.PackageException: javax.jcr.nodetype.ConstraintViolationException: OakConstraint0001: /libs/settings/granite/operations/maintenance/granite_weekly[[nt:folder]]: No matching definition found for child node granite_AuditLogMaintenanceTask with effective type [nt:unstructured]

Environnement

AEM 6.x

Cause

La cause est due à des versions héritées d’AEM ayant un type de nœud différent pour certains dossiers.  Lorsque le type de nœud change dans les versions futures, vous rencontrez cette erreur qui interrompt les mises à niveau et/ou les installations de correctifs.

Résolution

Suivez les étapes ci-dessous avant d’appliquer la mise à niveau ou le groupe de correctifs. Assurez-vous qu’il n’y a aucun utilisateur sur le système.

  1. Allez à http://aem-host:port/crx/de/index.jsp et connectez-vous en tant qu’utilisateur admin.
  2. Localisez le nœud à l’origine de l’erreur. Par exemple, dans l’erreur ci-dessus, il s’agit de /content/communities.
  3. Renommez ce nœud, par exemple, /content/communities en /content/communities-old.
  4. Créez un nœud avec le type de nœud approprié. Par exemple, /content/communities avec le type de nœud sling: Folder au lieu de nt: folder.
  5. Cliquez sur Tout enregistrer.
  6. Déplacez tous les sous-nœuds de l’ancien nœud vers le plus récent ayant le type de nœud approprié. Par exemple, déplacez tous les sous-nœuds de /content/communities-old vers /content/communities.
  7. Cliquez sur Tout enregistrer.

Notes internes

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne