Correção de jcr:mixinTypes ValueFormatException em builds do AEM
As compilações de pipeline no Adobe Experience Manager (AEM) as a Cloud Service falham devido a um pacote org.apache.sling.jcr.repoinit desatualizado. Esse problema ocorre quando um script repoInit atribui incorretamente um único valor a uma propriedade JCR de vários valores, acionando uma ValueFormatException. Este artigo explica a causa raiz e fornece etapas para resolver o problema, atualizando o pacote e corrigindo o script.
Descrição description
Ambiente
- Adobe Experience Manager (AEM) as a Cloud Service - Sites
- A versão atual do pacote
org.apache.sling.jcr.repoinité 1.1.38. A versão 1.154 ou posterior é necessária. - Falhas de pipeline ocorrem intermitentemente durante implantações. As implantações de ambientes de desenvolvimento normalmente são bem-sucedidas.
Problema/Sintomas
A build do pipeline falha com o seguinte erro:
Exceção em um SlingRepositoryInitializer, o registro do serviço SlingRepository anulou javax.jcr.RepositoryException: a aplicação da operação repoinit falhou apesar da tentativa; defina loglevel como DEBUG para ver todas as exceções. A última mensagem de exceção de "Configuração PID 313, script[ 0] " foi: Não é possível definir propriedades no caminho [ /conf/algum caminho] : javax.jcr.ValueFormatException: não é possível atribuir um único valor à propriedade de vários valores: jcr:mixinTypes = mix:lockable
Causa raiz
O script repoInit tenta atribuir jcr:mixinTypes como um valor único em vez de uma matriz de vários valores. Isso causa uma ValueFormatException sem tratamento, o que resulta em falha de execução de pipeline.
Resolução resolution
Para resolver esse problema:
- Modifique o script repoInit para que
jcr:mixinTypesseja gravado como uma matriz de vários valores ou remova a linha se os mixins já estiverem presentes. - Atualize o pacote
org.apache.sling.jcr.repoinitpara a versão 1.154 ou posterior, que inclui uma correção para esse problema. Esta atualização pode ser incluída em versões futuras do Foundation; verifique os agendamentos de lançamento quanto à disponibilidade. - Até que o pacote atualizado fique disponível, certifique-se de que os scripts repoInit usem matrizes para propriedades com vários valores.
Ao implementar essas etapas, as falhas de build de pipeline causadas por erros de inicialização de repositório podem ser atenuadas com eficiência.