Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

After Passivation, Page List is classless

KCP-312

Summary


 

During database passivation, passivation occurs when a session is idle for more than five minutes. However, intermittently, after passivation, a page list on the Clipboard becomes classless. This Clipboard page is a Page Reference to another page list elsewhere. 


Error Messages



Not Applicable


Steps to Reproduce

  1. Create page list 1 and page list 2 as siblings under pyWorkPage.
  2. Create a Reference page list as a child of page list 1 that is a reference to page list 2 (using the Property-Ref method in an activity).
  3. Use Property-Set-Messages in an activity to set a message on any Clipboard property. 
  4. Allow database passivation to occur.
  5. Refresh the Clipboard page. The Reference page list is classless.


ROOT CAUSE 

A defect in Pegasystems’ code or rules. 

During Activation, the process uses an activation thread.

  1. As part of the activation, the system reads the page (that is, the BLOB) from the database and adopts it.
  2. As part of the Adopt stream, the system attempts to expand properties with messages.
    In this scenario, the 'pyWorkPage.Transaction' has messages. Hence, the Activation process attempts to expand.
  3. As part of expanding properties, the process creates Reference links which are added to 'pyWorkPage.Transaction.List_1(1).List_2(1)'. The process checks the isReferenceFlag()) on the LocationList property before adding the links. 

    Later as part of the getSourceProperty() call on the link(ReferencePropertyLinkToCommonParent), the process checks the isDefinedAsReference() on List_2 property. If the isDefinedAsReference() on List_2 property is not defined as a Reference, the process removes the link. This makes the 'pyWorkPage.Transaction.List_1(1).List_2(1)' classless.

    In this case, the isDefinedAsReference() returns false (though LocationList is defined as a Reference). This is because, the Activation Thread does not have an application ruleset context. Hence, when the process consults the dictionary to know if LocationList is defined as reference or not, it says false. This issue does not occur if messages are not present.


Resolution



Apply HFix-64871.

Published December 2, 2021

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us