SR-D86978 · Issue 549172
Export to Excel cell style control added
Resolved in Pega Version 8.5
If a column was formatted with an auto generated numeric control, a new cell style was generated for every row during the export to Excel process. Since there is a limit on the amount of cell styles, once the number of rows in the file was greater than 64000 an error was generated. To resolve this, the system will disable the creation of a new cell style for every instance when an auto-generated numeric control is used.
SR-D81673 · Issue 546396
ClipboardToJSON Serializer enhanced
Resolved in Pega Version 8.5
After creating a JSON data transform with the top level structure set to Object and a step that mapped a Pagelist in clipboard to an Array of Objects in JSON, calling the data transform in Serialize mode resulted in a JSON mapping exception. This was a missed usecase for using the JSON serializer with nested pagelists in page, and has been resolved by adding pagegroup support for data transform serialization and skipping pagegroup serialization when automapped.
SR-D71977 · Issue 535602
Obj-Browse will retrieve more than 50 records
Resolved in Pega Version 8.5
After performing multiple skims, a newly added property was not retrieved when an Obj-Browse was performed. In Obj-Browse action, when a class is mapped to an external table and does not contain BLOB column pzpvstream, in a specific case where pxObjClass value is a reference to a parameter, a list of properties mapped to the class explicitly by querying pr4_rule_property table using NativeSQL is fetched. This call by default returns only 50 records: in cases where there are more than 50 properties for an external class, some of the properties from the obj-browse response mapping are therefore missed. To resolve this, the limit of 50 records has been removed from this NativeSQL call.
SR-D91894 · Issue 557221
Class Loader cache values wrapped with WeakReference for improved cleanup
Resolved in Pega Version 8.5
Out Of Memory exceptions due to Metaspace were observed on Web tier instances running with a max Metaspace size of 2GB. Investigation showed that in PRClassLoaderDB, mLoaderCache values were wrapped with a SoftReference. To resolve this, the Class Loader cache values will be wrapped with a WeakReference, allowing the cache to free memory when it is no longer needed. JVM options has also been added to switch types of References being used if there is a preference.
SR-D83424 · Issue 552722
Class Loader cache values wrapped with WeakReference for improved cleanup
Resolved in Pega Version 8.5
Out Of Memory exceptions due to Metaspace were observed on Web tier instances running with a max Metaspace size of 2GB. Investigation showed that in PRClassLoaderDB, mLoaderCache values were wrapped with a SoftReference. To resolve this, the Class Loader cache values will be wrapped with a WeakReference, allowing the cache to free memory when it is no longer needed. JVM options has also been added to switch types of References being used if there is a preference.
INC-120356 · Issue 560224
Class Loader cache values wrapped with WeakReference for improved cleanup
Resolved in Pega Version 8.5
Out Of Memory exceptions due to Metaspace were observed on Web tier instances running with a max Metaspace size of 2GB. Investigation showed that in PRClassLoaderDB, mLoaderCache values were wrapped with a SoftReference. To resolve this, the Class Loader cache values will be wrapped with a WeakReference, allowing the cache to free memory when it is no longer needed. JVM options has also been added to switch types of References being used if there is a preference.
SR-D50664 · Issue 531688
Support added for tracing PageList during automations
Resolved in Pega Version 8.5
When using the out-of-the-box email reply on an email triage case, an exception was observed in the tracer stating "com.pega.pegarules.pub.clipboard.WrongModeException: The property To.pxResults was of mode Page List while com.pega.pegarules.data.internal.clipboard.ClipboardPropertyImpl.getObjectValue() was expecting Java Object mode." This has been resolved by adding support for tracing PageList during automations.
SR-D66674 · Issue 538972
DSS added for fall back to legacy decision table format
Resolved in Pega Version 8.5
After upgrade and switch to IL, non-working decision tables created in one class had pyWorkPage mapped to another class. In the column, the properties were mentioned as "pyWorkPage.xxxxx", but at runtime when the non-working decision tables ran as standalone, the system did not ask for values to be entered to evaluate the result. Tracer showed the error as "Goal seek requires missing input property pyWorkPage.All_Offln_Trans_In on page pyWorkPage; details: (unknown)". Investigation showed that the Legacy assembly for the decision table used the lazy evaluation pattern to resolve the expression in the column header in the generated Java code. This resulted in the property for the column header only being read when it was used. However, for IL-based decision tables all properties are read immediately before any rows are evaluated, which requires the property already be present on the page. This missing property from the lazy assembly then resulted in the exception. To resolve this, Executable.generateOrCompileSource and Virtual tableassemblyHandler.useIL() have been modified to fall back to legacy decision table format if the DSS InternalLanguage/disableIlBasedDecisionTable is enabled.
INC-174716 · Issue 656441
Updated handling for validating/saving circumstanced rule on branch
Resolved in Pega Version 8.7
Using 'save as' for an already circumstanced rule with a new property/template caused the Rule-.DictionaryValidation activity to register the error "StandardValidate-CircumPropAlreadyDefined". The same activity Step did not throw an error when saving into Branch. This was traced to the ruleset name not being the same for the branch ruleset due to having _BRANCH_Branch-Name appended to its name, and has been resolved by adding a condition to check for circumstanced rule in a branch.
SR-D62840 · Issue 534125
Updated HashMap logic for better concurrent thread handling
Resolved in Pega Version 8.5
The Pega execution engine was getting stuck at com.pega.eclipse.util.collections.HashtableOfIntValues.get for many thread within thread dumps. Investigation showed that when the key was not present in keytable, a thread would be stuck in an endless 'while' loop related to mapping. To resolve this, the data structure that is used for ruleset mapping from HashtableOfIntValues to Concurrent HashMap has been modified to better handle concurrent threads, and the handling for get and put has been updated.