Excepción ClassCast durante el procesamiento de un PDF

Problema

Mientras se utilizan componentes como Assembler o Reader Extension en AEM Forms, el procesamiento de ciertos PDFs falla con la siguiente excepción en los registros del servidor, mientras que los mismos PDFs funcionan bien hasta 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)

Entorno

AEM Forms

Causa

Estas excepciones se ven en las nuevas versiones de AEM Forms, en las que se han habilitado ciertas funciones nuevas que requieren procesamiento. Las excepciones se observan cuando ocurren todos los escenarios siguientes:

  • Se utilizan PDFs dinámicos/estáticos generados a partir de un XDP.
  • En el XDP, al menos un campo de texto no tiene asignado ningún valor por defecto, es decir, contiene una etiqueta <value> vacía o una etiqueta <exData>, que está contenida en la etiqueta <value>.
  • Durante la variante de representación/procesamiento de PDF, la etiqueta vacía <value> encontrada en el paso 2 se reemplaza con un valor de texto enriquecido. 

Resolución

  1. Abra su XDP en AEM Forms Designer.

  2. Cambie a la vista de origen XML y busque la etiqueta <value> en blanco o la etiqueta <exData> contenida en una etiqueta de campo de texto.

  3. Si encuentra alguna de estas etiquetas vacías, vuelva a la vista Diseño y asigne un espacio como valor predeterminado en las propiedades del campo de texto.

  4. Repita el paso 3 para cada campo de texto identificado en el paso 2.

  5. Guarde el archivo XDP.