SR-D25184 · Issue 494692
Support added for referencing Page Group property inside of strategy
Resolved in Pega Version 8.4
Referencing a page property under Page Group property inside a strategy resulted in a runtime error of ClassCasting: "java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.pega.decision.strategy.ssa.runtime.ClipboardPage". The issue was traced to the SSA optimized code for the GetPage SSA assuming that the GetPage SSA would only have another page as a parent. In order to handle the above scenario where GetPage would have a GetPageCollection as a parent and return a List of ClipboardPages, a GetPage function has been applied over each entry in the results of the GetPageCollection SSA using a MapAction SSA. Some optimizations will be applied in cases where the GetPageCollection has only one entry, which will replace the MapAction with a simple GetPage action.
SR-D42402 · Issue 508895
Added differentiated handling for special symbols based on location in the label string
Resolved in Pega Version 8.2.4
While importing an Excel file into a decision table that used custom functions like@string:notequal or equal, label names like 'AlphaPrefix !=AAA' resulted in the error "invalid expression or reference: line 1:28 extraneous input '"True"' expecting {<EOF>, '-', '+', '=', '*', '/'," " . Investigation found that the problem was with the label of the column not handling the the special characters like (‘!=’, ‘<’ , ‘<=’, ‘>’, ‘>=’ ) present in the middle of the label string: the label and default operator were being updated irrespective of the location of the symbols within the string. To resolve this, DecisionTableWorkBookConverter.java has been modified to set the operator only if the special strings (‘!=’, ‘<’ , ‘<=’, ‘>’, ‘>=’ ) are present at the end of the label.
INC-182776 · Issue 666941
CheckFlowDependencies updated for auto-instantiated child cases
Resolved in Pega Version 8.7
A parent case with more than one child case was producing an unexpected behavior during the child case creation process. The first child case was instantiated at the correct point of the case stage based on its dependency condition, but the following cases were instantiated at the same point where the first child case was created irrespective of the dependency conditions defined in the other child cases. Investigation showed that the pxCheckFlowDependencies activity called from the Resolve activity was removing the named pages "pyTopCaseMap" "pyTopCaseWork" which are required for starting and validating configured auto-instantiate child cases in the pzCanStart function. To resolve this, an update has been made to CheckFlowDependencies which will use the activity "pzResolveCaseHierarchyMap" for removing the "pyTopCaseMap" and "pyTopCaseWork" pages based on DependencyType.
INC-190070 · Issue 676643
Restored local blocking queue cache
Resolved in Pega Version 8.7
After update, it was not possible to bring up secondary VBD nodes after restarting. Investigation traced this to earlier work done to resolve a memory leak issue, in which stale entries for local blocking queues were removed from cache. This resulted in modifying the queue listener logic to use "cache.getQueueIfPresent(jobId)" instead of "cache.getQueue(jobId)". Because the listener was not creating the cache if it was not present and the cache which held the local blocking queue didn't have the entry for the current remote execution job ID, the caller of the remote execution on Node2 ended up in blocking state forever, waiting on the local blocking queue. To resolve this, the code has been updated to ensure the blocking queue is created and stored in the local queue cache before publishing the remote job message.
INC-193153 · Issue 686293
Restored local blocking queue cache
Resolved in Pega Version 8.7
After update, it was not possible to bring up secondary VBD nodes after restarting. Investigation traced this to earlier work done to resolve a memory leak issue, in which stale entries for local blocking queues were removed from cache. This resulted in modifying the queue listener logic to use "cache.getQueueIfPresent(jobId)" instead of "cache.getQueue(jobId)". Because the listener was not creating the cache if it was not present and the cache which held the local blocking queue didn't have the entry for the current remote execution job ID, the caller of the remote execution on Node2 ended up in blocking state forever, waiting on the local blocking queue. To resolve this, the code has been updated to ensure the blocking queue is created and stored in the local queue cache before publishing the remote job message.
INC-201338 · Issue 690896
Restored local blocking queue cache
Resolved in Pega Version 8.7
After update, it was not possible to bring up secondary VBD nodes after restarting. Investigation traced this to earlier work done to resolve a memory leak issue, in which stale entries for local blocking queues were removed from cache. This resulted in modifying the queue listener logic to use "cache.getQueueIfPresent(jobId)" instead of "cache.getQueue(jobId)". Because the listener was not creating the cache if it was not present and the cache which held the local blocking queue didn't have the entry for the current remote execution job ID, the caller of the remote execution on Node2 ended up in blocking state forever, waiting on the local blocking queue. To resolve this, the code has been updated to ensure the blocking queue is created and stored in the local queue cache before publishing the remote job message.
SR-D16427 · Issue 495818
Multi-nodes rebuild LibraryMetadata to ensure all Rule-Utility-Functions are present on change
Resolved in Pega Version 8.4
When performing a complete Application import into a clean installation, references to certain Rule-Utility-Functions went unresolved during the initial assembly. Investigation showed that after introducing a new Rule-Utility-Library or Rule-Utility-Function on one node in a cluster and then generating that, the other nodes in the cluster did not have the correct LibraryMetaDataCache for that Rule-Utility-Library.Therefore assemblies on those other nodes could be bad and throw a runtime UnresolvedAssemblyError. This has been resolved by modifying the way the Library subsystem processes the node changes events for Library Generation to ensure that each node completely rebuilds the LibraryMetadata for that Rule-Utility-Library so it contains all the Rule-Utility-Functions.
SR-D16427 · Issue 497222
Multi-nodes rebuild LibraryMetadata to ensure all Rule-Utility-Functions are present on change
Resolved in Pega Version 8.4
When performing a complete Application import into a clean installation, references to certain Rule-Utility-Functions went unresolved during the initial assembly. Investigation showed that after introducing a new Rule-Utility-Library or Rule-Utility-Function on one node in a cluster and then generating that, the other nodes in the cluster did not have the correct LibraryMetaDataCache for that Rule-Utility-Library.Therefore assemblies on those other nodes could be bad and throw a runtime UnresolvedAssemblyError. This has been resolved by modifying the way the Library subsystem processes the node changes events for Library Generation to ensure that each node completely rebuilds the LibraryMetadata for that Rule-Utility-Library so it contains all the Rule-Utility-Functions.
SR-D20473 · Issue 498035
Multi-nodes rebuild LibraryMetadata to ensure all Rule-Utility-Functions are present on change
Resolved in Pega Version 8.4
When performing a complete Application import into a clean installation, references to certain Rule-Utility-Functions went unresolved during the initial assembly. Investigation showed that after introducing a new Rule-Utility-Library or Rule-Utility-Function on one node in a cluster and then generating that, the other nodes in the cluster did not have the correct LibraryMetaDataCache for that Rule-Utility-Library.Therefore assemblies on those other nodes could be bad and throw a runtime UnresolvedAssemblyError. This has been resolved by modifying the way the Library subsystem processes the node changes events for Library Generation to ensure that each node completely rebuilds the LibraryMetadata for that Rule-Utility-Library so it contains all the Rule-Utility-Functions.
SR-D22113 · Issue 498314
Multi-nodes rebuild LibraryMetadata to ensure all Rule-Utility-Functions are present on change
Resolved in Pega Version 8.4
When performing a complete Application import into a clean installation, references to certain Rule-Utility-Functions went unresolved during the initial assembly. Investigation showed that after introducing a new Rule-Utility-Library or Rule-Utility-Function on one node in a cluster and then generating that, the other nodes in the cluster did not have the correct LibraryMetaDataCache for that Rule-Utility-Library.Therefore assemblies on those other nodes could be bad and throw a runtime UnresolvedAssemblyError. This has been resolved by modifying the way the Library subsystem processes the node changes events for Library Generation to ensure that each node completely rebuilds the LibraryMetadata for that Rule-Utility-Library so it contains all the Rule-Utility-Functions.