SR-D90687 · Issue 560431
IOException handling improved to resolve broken pipe errors
Resolved in Pega Version 8.4.2
Frequent "connection reset by peers" exceptions were being generated and broken-pipe exceptions were seen in the logs. Investigation traced the issue to unhanded IOExceptions on the server side that were a result of the client application not always closing the TCP connection gracefully. To resolve this, error handling for IOExceptions has been improved.
SR-D67408 · Issue 554900
Directory traversal blocked in zip import
Resolved in Pega Version 8.4.2
One of the files contained in a zip archive was not deleted from the system after zip import. This was due to the file being created by a third-party archive that included of a directory traversal character that caused it to be inflated outside of the temp directory. To resolve this, a check has been added to that a file with directory traversal characters in its name will not be inflated.
SR-D81572 · Issue 551028
JDBC URL handling added for Oracle over TCPS
Resolved in Pega Version 8.4.2
While attempting to upgrade an environment over TCPS, the generateDDL.sh script was failing. The same environment ran without issue on Tomcat with the same URL. Investigation showed the JDBC url was not correctly generated while running the upgrade: in a standard scenario, there will be no spaces in the JDBC URL specified. However, because Oracle can send spaces as part of JDBC URL and cause this issue, an update has been made which will quote the JDBC URL argument for the ant target in setupDDL.xml.
SR-D84364 · Issue 551403
Check for circular references added to SearchInventoryImpl to prevent recursive call
Resolved in Pega Version 8.4.2
An out of memory error was traced to SearchInventoryImpl infinitely recursing over a clipboard property, where the child property referenced a parent property and resulted in an endless loop. This has been resolved with the addition of a depth check to ensure that the search does not recurse infinitely.
SR-D85100 · Issue 556262
ProductInfoReader updated to fetch only most recent version information
Resolved in Pega Version 8.4.2
After upgrade, running Hfix scanner on Pega Marketing 8.2 displayed missed critical Hfixes for Pega Marketing 8.1. This has been resolved by modifying ProductInfoReader.runQuery to fetch only latest version of DAPF instances during a scan.
SR-D98404 · Issue 558207
Handling added for hotfix Rule-Application instances
Resolved in Pega Version 8.4.2
A null pointer error during DL file expansion performed as part of the second phase of a hotfix installation caused the hotfix install to fail. The null-pointer exception was thrown because the code, primarily used for export, performed a database lookup of a Rule-Application and assumed the response would be non-null without checking the result. During export the Rule-Application would normally exist because the system would have interacted with it already during the export by identifying it and writing it to the archive. During phased hotfix installation, rules are staged to the database in a different table during the first phase and reconstituted during the second phase. The scenario for this error was a missed corner case specific to the unusual combination of including Rule-Application instances in a platform hotfix. To resolve this and prevent further issues, handling has been added for this use case.
SR-D33359 · Issue 505773
SelectAll properly applied to only the page selected
Resolved in Pega Version 8.2.4
In repeating grid, applying SelectAll on one page resulted in it being applied to the next page as well even though all records in the other page were not selected. Investigation showed that on change, the 'when' condition added to refresh the list was always false. To resolve this, the condition in section pzBulkProcessingCheckbox which refreshes the list once the checkbox is changed has been removed.
SR-D37444 · Issue 507038
WorkBasketGadget control updated for improved backwards compatibility
Resolved in Pega Version 8.2.4
After upgrade, the WorkBasketGadget Control was not retrieving the work queues. This was traced to a backwards compatibility issue introduced when greater security was put in place. The control WorkBasketGadget contains a call to pzEncryptURLActionString that was introduced in 8.x versions of the platform to encrypt URLs to avoid hijacking. The content of the URL relies on the pxRequestor.pxWorkGroup property, which is resolved using pega:reference tags. This approach was working in versions below 8.x, but these tags were not resolved at runtime. To correct this, requestorWorkGroup will be resolved as string and passed as a parameter instead of using pega:reference tags.
SR-D26785 · Issue 495892
Corrected error when persisting temporary work object
Resolved in Pega Version 8.2.4
When persisting a temporary work object using the Persist case shape, the internal assignment handle was not updated to include the work object's ID. Subsequent attempts to access the internal assignment (such as the "Edit" button on the Review Harness) resulted in errors. Investigation showed that when a temporary case was persisted, pyInternalAssignmentHandle was not getting recalculated after pzInsKey was updated. To resolve this, the configuration on the edit button has been modified to use .pxFlow(pzInternalCaseFlow).pxAssignmentKey which is what pyInternalAssignmentHandle declare expression was also returning.
SR-D32525 · Issue 505467
Dirty check added to offer save/discard changes when closing tab
Resolved in Pega Version 8.2.4
With the OOTB section enabled, performing a change in the form (changing a text value, selecting a option in a dropdown, etc.) and closing the case generated an unexpected alert indicating that the case was changed and the modifications were lost. This differs from the previous behavior of showing the section pyDirtyCheckConfirm which offered the opportunity to save the work. This was a missed use case and has been resolved by updating the system to perform a check for the dirty state when closing the interaction and show a modal dialog asking the user to choose either save/discard if dirty.