INC-155822 · Issue 618269
Locking added to avoid Null Pointer Exception for auto-populate property
Resolved in Pega Version 8.5.3
After configuring the auto populate property "OrgProduct" which referred to a data page, the system experiencing heavy load led to the property not getting properly initialized. This resulted in a WrongModeException and NullPointerException. To resolve this, the system has been updated to lock the requestor when Queue Processors execute their activity. This will prevent race conditions and concurrent modifications if other threads are accessing the same requestor.
INC-155908 · Issue 625218
Logic updated for handling future events in strategy tests
Resolved in Pega Version 8.5.3
After upgrade, there was an unexpected exception "EventStrategy error in SerializeUtil: Integer too large to read, Size:48" while retrieving the final BBK aggregate results during strategy tests with several different pre-existing customerIDs, and no results were returned. When aggregations are read, there is a check to make sure the system does not return empty records. The logic for determining whether there is empty data in the record was mistakenly reading the event count from the wrong bytes which were part of a date for 2023. This was due to the second byte of the year date in hex being interpreted as the start of the event count. As a workaround, results are returned if no pxOutcomeTime dates in the database are more than a year in advance along with all aggregate datasets being recreated on production immediately after upgrade from v8.1 to v8.5. To resolve this issue going forward, the logic has been updated to handle the errors, and future records will trigger a warning in the log with information such as "Event time greater than current time in clipboard page. Event Time = Mon Mar 10 14:46:27 UTC 2025, Current Time = Tue Feb 09 14:18:49 UTC 2021. Ignoring event...".
INC-157097 · Issue 619996
REGEX In Expression Builder matches runtime values
Resolved in Pega Version 8.5.3
An expression builder statement was evaluating differently at runtime vs at testing. This was traced to a difference in escape character handling between old legacy code and the new strategy runtime engine, and has been resolved by ensuring the strategy runtime engine is supporting escape character use cases.
INC-157194 · Issue 620153
CheckRevisionDeployment requires authentication
Resolved in Pega Version 8.5.3
Authentication has been added to the CheckRevisionDeployment service package.
INC-158320 · Issue 624414
Support added for multi-level simulation
Resolved in Pega Version 8.5.3
Enhancements have been made to support Adaptive Models in Muti-level decision strategies.
INC-158686 · Issue 628554
DSS added to create consistent handling of longform datetime
Resolved in Pega Version 8.5.3
After upgrade, a difference in handling related to datetime value was seen. For example, EmailSchedRunEndDate is a date type property holding the value "20201016T000000.000 GMT"; in Pega v7.4, a substring function was used to move the extra characters from the date field ex. EmailSchedRunStartDate = @substring(.EmailSchedRunStartDate,0,8), but in Pega v8.4 and higher the long datetime value ( "20201016T000000.000 GMT") was still being used for the date field. This long value was then truncated to 2020101+ when saving to the database, causing errors in later steps. However, research found that if there is a call @toDate function before this step for any other field, the correct date value was set for EmailSchedRunStartDate. While ClipboardPages separate Dates and DateTimes, internally, in Java, both have a time component. The implementation of DSMClipboardPage made no difference for serialization and appended the time component for pure Date properties. To create consistent handling, an update has been made to optionally set the correct behavior after setting the Dynamic System Setting by way of "Pega-DecisionEngine dsm/clipboard/correctDateFormat -> true". This setting would only take effect after a restart of Pega, and the default is false in order to not disrupt any application inadvertently relying on this behavior.
INC-158813 · Issue 629486
Updated report handling for simulations using database output
Resolved in Pega Version 8.5.3
When running a simulation with a database table as the output destination, the pxObjClass property was not populating with a value in the results. This caused sub-reports to not be populated with data. Investigation showed that issue happened when the simulation output destination database table was inferred as an external table due to not having an exposed column for pzinskey. To resolve this, the pxObjClass and pxCreateDateTime properties, which were added to simulation output destination tables for compatibility with Report browser, will not be added to those tables when they are created. Instead, to address compatibility issues of simulation output destination classes with Report browse in the Customer Decision Hub, the pyDefaultSummaryReport has been brought up into the Data-Decision-StrategyExecution-ResultOutput class from the @baseclass.
INC-159332 · Issue 629619
Logic updated for finding 'Last' in Interaction History
Resolved in Pega Version 8.5.3
The 'LastReponseDate' and 'LastInteractionId' in the Interaction History summary data set were null. Investigation showed that reusing the ESM component in the aggregation dataset caused any assumptions made during the optimization of ESM to not be true anymore. To resolve this, the logic of the Last aggregation has been modified to not rely on a Last event which might not be stored in-state (such as optimization), but rather to use the list of events which is always stored.
INC-160277 · Issue 628160
Implementation updated to ensure consistent compareDatesByDays results
Resolved in Pega Version 8.5.3
When using compareDatesByDays in a filter shape within a strategy, the results of the expression were different between the expression test and the strategy test run. This was traced to a difference in handling that became visible after upgrade; giving a negative number for the numberOfDays parameter worked differently in v7.4 than in v8.4. The SSA implementation of compareDatesByDays always worked with the absolute difference in days between dates, whereas the Java function in Pega used in expressions did not, and would compare negative differences as well. To restore the expected behavior, the SSA implementation has been adjusted to not work with absolute differences, and tests have been added to ensure equal results for the Java function in Pega and the SSA implementation.
INC-160887 · Issue 629272
Resolved strategy optimization exception
Resolved in Pega Version 8.5.3
After upgrade from v8.2 to v8.5, Customer Decision Hub strategy failures were seen in the data join used with a datapage/page list to fetch some results. Errors appeared in the logs and UI. The exception indicated that the Strategy Parser for the new execution engine (SSA) was not able to parse and inline the used expression. Normally this exception would be caught in subsequent processing and the component where the exception is used would fall back to legacy so as to not affect the runtime behavior, but this scenario triggered a corner case inside the parsing logic for Data Join and Exclusion shape which caused the exception and stopped the process. To work around this issue, the Data Join configuration can be split into two shapes: create a new Data Import shape to only import the Page list, e.g. 'Page.pxResults', then on the original Data Join component, instead of joining the 'Page.pxResults', join with the new Data Import shape. This issue has been resolved by catching the exception when compiling the Data Join component and properly falling back to the Data Join shape.