INC-175994 · Issue 667483
Removed redundant Microsoft Outlook email interaction chain
Resolved in Pega Version 8.4.6
When opening an email interaction case, the email editor user interface area showed the complete email chain of the email for every new message that came in related to the case. This was traced to the difference in the selectors that various email clients use to construct a response to an email with email history in it, and has been resolved by updating the selectors for Microsoft Outlook in pyRichTextEmailHistorySelector so no conversation is repeated when using that client.
INC-187031 · Issue 676245
Topic handling updated for behavior tab
Resolved in Pega Version 8.4.6
While submitting topics configured on the behavior tab of the chat channel, duplicate records were created and a null pointer exception was generated. Investigation showed this was due to a difference in Topic handling between the email channel and the chat channel in a modal window, and has been resolved.
INC-156674 · Issue 660956
Handling added for reactivating combined Passivation and AccessGroup timeout
Resolved in Pega Version 8.4.6
Refreshing a passivated browser window in Dev Studio for an operator with a combined access group and passivation timeout was resulting in a blank screen after re-authenticating. InvalidParameterException and InvalidReferenceException messages were logged. Research showed this was caused by a missing pxPortal property on the pxThread page along with missing Application and Accessgroup pages. While refreshing the browser along with the top URL, there will be few requests with tab threads calling activities such as deletedocumentpg and SetProcessWindowName because there was an unload. Because these requests reached the server before re-authentication, the threads proceeded to the activation flow, causing properties such as pxPortal, Application, and Accessgroup pages to be removed from the thread page and requestor page according to the condition that the requestor was not yet authenticated. To resolve this, the logic in session.internal.authorization.context.BasicApplicationContextImmutableImpl#applyApplicationProperties has been updated to skip removing application page properties from the thread page in this combined Passivation and AccessGroup timeout scenario.
INC-165722 · Issue 636327
Stack trace logging enhanced for engine startup issues
Resolved in Pega Version 8.4.6
Enhanced stack trace logging has been added to capture additional information when the application is unable to start and no PegaRULES logs are generated.
INC-170458 · Issue 667374
Handling updated for queue processor locks
Resolved in Pega Version 8.4.6
The Final activity mentioned in the processing epilog of the Service File rule was not being consistently called from File Listener, causing some of the cases to become stuck and not continue to the next stage. Investigation showed that if the lock was held by the queue processor requestor, the system was unable to obtain the lock but still proceeded to update the LogServiceFile page and persist it. This resulted in overwriting changes made on the LogServiceFile page by the requestor, resetting the completed-batches-count set back to 0. To resolve this, RuleServiceFile -> updateLSFBatchCounts() will call the overloaded lockAndLoad() method in LogServiceFile that accepts a parameter called lockAttempts. This will attempt to obtain a lock for a given number of times before throwing an exception.
INC-174612 · Issue 659249
Queue Processor threads explicitly cleared before new interaction
Resolved in Pega Version 8.4.6
Queue Processor was not clearing already evaluated freshness caches before running an activity, potentially causing a stale data page to be processed. This has been resolved by explicitly clearing the thread on a new interaction by invoking ((IPRThread) thread).clearOnNewInteraction.
INC-177773 · Issue 665339
Tracer protections updated
Resolved in Pega Version 8.4.6
Cross-site scripting protections have been updated for Tracer.
INC-177993 · Issue 657201
Archival IndexManagerService performance improved for very large tables
Resolved in Pega Version 8.4.6
Archival IndexManagerService was taking an excessive amount of time to run updateStatusForCasesWithInconsistentArchiveStatus(), a method which checks the parent case's archival status and compares it to all its children (cases & dependencies) statuses and flags parent cases with statuses that do not match. This check is done on all parent case instances that are in the indexer stage, and intermittently timed out and failed on a pr_metadata table containing over 5,000,000 records. This has been resolved by splitting the inconsistent check into smaller tasks and addressing potential parent/child/dependency relationships that can occur in the pr_metadata table.
INC-179025 · Issue 665547
Null check added for getTargetNodeUUID
Resolved in Pega Version 8.4.6
A null pointer error was seen from the tracer during a security scan. This has been resolved with the addition of a null check for TracerRequest.getTargetNodeUUID.
INC-179166 · Issue 676526
Correspondence rule finds updated content
Resolved in Pega Version 8.4.6
Activity Method Property-Set-Stream retrieved the older content of Correspondence when triggered via Queue processor. Restarting the queue processor resolved the issue until the next correspondence update, and then the cycle repeated. This has been resolved by adding an explicit thread cleanup to remove cached rules.