Exceção ClassCast durante processamento do PDF

Problema

Ao usar componentes como Assembler ou Reader Extension no AEM Forms, o processamento de determinados PDFs falha com a exceção abaixo em logs do servidor, enquanto os mesmos PDFs funcionam bem até o LiveCycle ES4.

java.lang.ClassCastException: com.adobe.xfa.TextNode cannot be cast to com.adobe.xfa.Element
	at com.adobe.xfa.Delta.restore(Delta.java:241)
	at com.adobe.xfa.form.FormField.getDeltas(FormField.java:398)
	at com.adobe.xfa.Element.getDeltas(Element.java:2366)
	at com.adobe.xfa.form.FormSubform.getDeltas(FormSubform.java:91)
	at com.adobe.xfa.Element.getDeltas(Element.java:2366)
	at com.adobe.xfa.form.FormSubform.getDeltas(FormSubform.java:91)
	at com.adobe.xfa.Element.getDeltas(Element.java:2366)
	at com.adobe.xfa.form.FormSubform.getDeltas(FormSubform.java:91)
	at com.adobe.xfa.Element.getDeltas(Element.java:2366)
	at com.adobe.xfa.form.FormSubform.getDeltas(FormSubform.java:91)
	at com.adobe.xfa.form.FormModel.merge(FormModel.java:6021)
	at com.adobe.xfa.form.FormModel.merge(FormModel.java:5901)
	at com.adobe.xfa.form.FormModel.merge(FormModel.java:5863)
	at com.adobe.internal.pdftoolkit.services.xfa.form.DocumentContext.doMerge(DocumentContext.java:1049)
	at com.adobe.internal.pdftoolkit.services.xfa.form.DocumentContext.postLoad(DocumentContext.java:2290)
	at com.adobe.internal.pdftoolkit.services.xfa.form.XFAPlugin.loadXFA(XFAPlugin.java:110)
	at com.adobe.internal.pdftoolkit.services.xfa.form.XFAPlugin.processXFA(XFAPlugin.java:246)
	at com.adobe.internal.pdftoolkit.services.xfa.XFADOMService.createXFADocumentContext(XFADOMService.java:275)
	at com.adobe.internal.pdftoolkit.services.xfa.XFADOMService.getXFADOM(XFADOMService.java:131)
	at com.adobe.internal.pdftoolkit.services.xfa.XFADOMService.getXFADOM(XFADOMService.java:179)
	at com.adobe.internal.pdftoolkit.services.xfa.XFADOMService.getXFADOM(XFADOMService.java:218)

Ambiente

AEM Forms

Causa

Essas exceções são vistas em versões mais recentes do AEM Forms, em que determinados recursos novos que exigem processamento foram habilitados. As exceções são vistas quando todos os cenários a seguir ocorrem:

  • Você usa PDFs dinâmicos/estáticos gerados a partir de um XDP.
  • No XDP, pelo menos um campo de texto não é atribuído, ou seja, ele contém uma aba <value> vazia ou uma aba <exData> vazia, que está contida na aba <value>.
  • Durante a representação/processamento do PDF, a tag <value> vazia encontrada na etapa 2 é substituída por um valor rich text. 

Solução

  1. Abra o XDP no AEM Forms Designer.

  2. Alterne para a exibição de origem XML e procure a aba em branco <value> ou a aba <exData> contida em uma aba de campo de texto.

  3. Se você encontrar uma tag vazia, retorne para a Exibição de design e atribua um espaço como o valor padrão nas propriedades do campo de texto.

  4. Repita a etapa 3 para cada campo de texto identificado na etapa 2.

  5. Salve o arquivo XDP.