A atualização da instalação do CFP ou do SP falha com o ConstraintViolationException

Problema

Ao atualizar o AEM, instalando um Service Pack (SP) ou um Cumulative Fix Pack (CFP), há um ConstraintViolationException conectado ao error.log.

Exemplo 1:
No exemplo abaixo, o erro estava relacionado ao nó/content/communitie durante a instalação do AEM6.3 SP1 CFP2.  Esse nó é normalmente um sling: Pasta, mas no ambiente com o erro, o nó foi nt: pasta.

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]

Exemplo 2:
No exemplo abaixo, um erro semelhante quebrou a atualização do AEM 6.0 para 6.3.  A instalação do pacote falhou porque o tipo de nó de /libs/settings/granite/operations/maintenance/granite_weekly era nt: folder ao invés 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]

Ambiente

AEM 6.x

Causa

A causa é de versões herdadas do AEM que possuem um tipo de nó diferente para determinadas pastas.  Quando o tipo de nó é alterado em versões futuras, esse erro é encontrado e interrompe as atualizações e/ou instalações de correção.

Resolução

Siga as etapas abaixo antes de aplicar o upgrade ou fix pack. Certifique-se de que nenhum usuário esteja no sistema.

  1. Acesse http://aem-host:port/crx/de/index.jsp e faça o login como usuário administrador.
  2. Navegue até o nó que está causando o erro. Por exemplo, no erro acima é / content / communities.
  3. Renomeie esse nó, por exemplo, /content/communities para /content/communities-old.
  4. Crie um nó com o tipo de nó correto. Por exemplo, /content/communities with nodetype sling: Folder ao invés de nt: folder.
  5. Clique em Salvar tudo.
  6. Mova todos os subnós do nó antigo para o mais novo que tenha o tipo de nó correto. Por exemplo, mova todos os subnós de / content/communities-old para / content/communities.
  7. Clique em Salvar tudo.

Notas Internas

Logotipo da Adobe

Fazer logon em sua conta