Support Article
RuntimeException: caught exception while expanding property
SA-95999
Summary
Post upgrading Pega Platform 7.2 to Pega Platform 8.2.2, error occurs and user is unable to open work objects.
Error Messages
property .pyXMLRootNode was expected to have a List or Page mode, but attributes are @Z:J?N:. Details: Invalid value for aAttr passed to com.pega.pegarules.data.internal.clipboard.ClipboardPropertyImpl.adopt(String, String, char, StorageStream, List) java.lang.RuntimeException: caught exception while expanding property pyXMLRootNode on page pyWorkPage.pxFlow(MonitorDefendant).pyFlowParameters at com.pega.pegarules.data.internal.clipboard.DirectStreamContainer.expandToProperty(DirectStreamContainer.java:561) at com.pega.pegarules.data.internal.clipboard.DirectStreamContainer.expandAllToProperties(DirectStreamContainer.java:389) at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.expandAll(ClipboardPageImpl.java:874) at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.expandAll(ClipboardPageImpl.java:867) at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.expandAll(ClipboardPageImpl.java:862) at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.values(ClipboardPageImpl.java:5069) at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.values(ClipboardPageImpl.java:5095) at com.pega.pegarules.data.internal.clipboard.ClipboardPageBase.getMessagesMapInner(ClipboardPageBase.java:1022) at com.pega.pegarules.data.internal.clipboard.ClipboardPageBase.getMessagesMap(ClipboardPageBase.java:960) at com.pega.pegarules.data.internal.clipboard.ClipboardPageBase.getMessagesMapInner(ClipboardPageBase.java:1035) at com.pega.pegarules.data.internal.clipboard.ClipboardPageBase.getMessagesMap(ClipboardPageBase.java:960) at com.pega.pegarules.data.internal.clipboard.ClipboardPageBase.getMessagesMapInner(ClipboardPageBase.java:1035) at com.pega.pegarules.data.internal.clipboard.ClipboardPageBase.getMessagesMap(ClipboardPageBase.java:960) at com.pega.pegarules.data.internal.clipboard.ClipboardPageBase.getMessagesMapInner(ClipboardPageBase.java:1035) at com.pega.pegarules.data.internal.clipboard.ClipboardPageBase.getMessagesMap(ClipboardPageBase.java:960) at com.pega.pegarules.data.internal.clipboard.ClipboardPageBase.getMessagesMapByEntryHandle(ClipboardPageBase.java:939) at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.getMessagesMapByEntryHandle(ClipboardPageImpl.java:113)
Steps to Reproduce
Open the work object.
Root Cause
After searching the code references for pyXMLRootNode, it is determined that the property is created in the Parameter page in the invokeXMLParseRule method in the ParseRuleUtils class. These properties are not removed after the Parse XML rule is invoked. Hence, the created parameters are passed to the work object flow because the 'Pass current Parameter page' checkbox is enabled during the REST/SOAP connector call in an activity.
Therefore, the parameters created during the Parse XML rule execution are added to the pxFlow page of the work object. As a result, the work object cannot be opened, since the ClipboardAPI failed to deserialize the data available in these parameters (that is, pyXMLRootNode, apacheXMLDSigProvider, and pyRequestParams).
Resolution
Perform either of the following local-changes:
- Pass the required parameters in the fields instead of enabling the 'Pass current parameter page' checkbox in the REST connector call.
- Override the pyFlowParameters property in to an unlocked ruleset.
- Disable the 'Validate Embedded pages' checkbox in the Advanced tab.
This works for work objects that are created/updated in Pega Platform 8.x. However, the issue still persists for migrated work objects which are not yet updated in Pega Platform 8.x.
Perform the below local-change for untouched migrated work objects:
Perform the below local-change for untouched migrated work objects:
- Apply HFix-58767.
- Set the Dynamic System Setting (DSS) to skip the exception while opening the work object due to the problematic properties.
Set propertiesToIgnoreDuringBlobDeserialization DSS to pyXMLRootNode apacheXMLDSigProvider
- Restart the Application server.
- Use the Obj- methods to write a utility to open the work object and remove the problematic properties.
While opening the work object, the below error is generated in the log.
ERROR - Exception caught during deserialization of Java Object value of property .pyXMLRootNode. Message: Inconsistent vector internals
java.io.StreamCorruptedException: Inconsistent vector internals
at java.util.Vector.readObject(Vector.java:1081) ~[?:1.8.0_171]
at sun.reflect.GeneratedMethodAccessor489.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_171]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_171]
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1158) ~[?:1.8.0_171]
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2176) ~[?:1.8.0_171]
The error occurs because the system is unable to deserialize the content available in these problematic properties in the corrupted work objects. However, the utility executes successfully, and the properties can be removed from the work object.
Published July 18, 2020 - Updated December 2, 2021
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.