SR-C8392 · Issue 350041
Refactored file loading tools for consistent URL escapes
Resolved in Pega Version 7.4
The .properties file was generated with the wrong rest URL due to handling differences for escaped URLS. The file loading tools have now been refactored to use a common interface for handling escapes.
SR-C8662 · Issue 351473
Corrected Boolean option documentation for BIX
Resolved in Pega Version 7.4
In the user Guide for BIX, the "Optional command-line BIX parameters" section states the -B option affects how Boolean values are published, giving '01' as a valid option. However, attempting to use it generated a runtime exception stating that it was an unsupported value. This issue was caused a documentation error, and the files have now been updated to correctly indicate the option is "10".
SR-C8899 · Issue 333268
ABAC exception handling added
Resolved in Pega Version 7.4
After creating an access control policy and access control policy condition on a data class that shows in the Data Explorer, defining the condition such that it was always false and then clicking on the class on which the policy was just defined generated an error. If the policy was withdrawn and then clicked on again, it appeared as expected. This was reproducible only when ABAC was enabled, and handling for an exception generated in this scenario has been added.
SR-C9767 · Issue 350619
Object contention resolved to improve getPOJO performance
Resolved in Pega Version 7.4
Object pool contention issues were seen related to getPOJO and getDelegate. This was traced to the legacy class GenericObjectFactoryPool, where a hashmap was being guarded with a synchronized block for multi-thread access. This process has now been replaced with a concurrenthashmap to do the same but with thread contention.
SR-B66932 · Issue 334833
Indexes created on a MT system automatically contain pzTenantID column
Resolved in Pega Version 7.4
When installing PDC on a multi-tenant system the pzTenantID column is automatically added to every application table (pegaam_*). This is expected. However, the indexes contained in the schema jar were not automatically extended to contain the pzTenantID, which created the need to manually update all indexes post-install to include the pzTenantID column on the first place. A similar problem existed when updating to a newer version of PDC that contains schema changes. This has been addressed by adding MultiTenantPolicy and Import/Default concrete classes that inform DatabaseSchemaGenerator.IndexElement whether or not to include pzTenantID in the column list. During Import, pzTenantID will be added to all indexes on shared context tables. In other utilities (UAS, clone table, etc.) the column will only be added to primary key and unique indexes/constraints (existing behavior).
SR-B83849 · Issue 337067
Exception handling added for XML with invalid characters
Resolved in Pega Version 7.4
When PDC receives an Exception alert in the form of a SOAP Message from one of its monitored nodes, it parses the XML and creates a work object from it. However, if the Exception was caused by an XML with invalid characters, the Exception SOAP Alert message carried the invalid characters when arriving on AES/PDC PRSOAPServlet, causing the engine to fail in parsing the XML and generate an exception. Logic has now been added to SOAP envelope parsing to catch the exception, sanitize the payload, and then re-feed it to the parser.
SR-C445 · Issue 344716
cluster rule watch lock expires on crash
Resolved in Pega Version 7.4
If the cluster rule watch was in progress and the browser / system crashed, the rule watch became locked until the system (cluster) was restarted. In this case, the disconnect command from Req1 has an encrypted requestor ID because it is an unauthenticated requestor, leading to all String-matches failing. A hook to delete all entries in the distributed rule watch map for a given requestor during its clean up has now been added to resolve this.
SR-B90037 · Issue 340248
pyFolderID honored for SaveFileContent
Resolved in Pega Version 7.4
After customizing the out-of-the-box Activity "SaveFileContent" by setting the property "pyFolderID," all attachments were stored in the Documentum root folder instead of the specified folder. This was traced to a code error that bypassed setting the parameter, and has been fixed.