Pega Infinity™ includes an industry-standard patch release process to simplify and maintain high-quality releases. Several cumulative patches are released a year for each release stream. The Resolved Issues page contains information about client-reported issues that have been addressed for the specific release.
For a formatted complete set of the Resolved Issues for this release, download the PDF attachment at the bottom of this page. (Note that you must be logged in to access the attachment.)
Ticket # | Issue # | Title | Description | |
---|---|---|---|---|
SR-C40145 | 402928 | Restarting the SVM training analysis checks for existing model request to continue | When creating a predictive model there was an issue with completing the SVM training analysis either due to error or browser crash. In previous versions of Designer Studio the session would stay alive and continue to execute, however more recent versions of the decision analysis's portal expected the user to keep the session active in order for the model to complete even though for long-running model training it is not viable to keep a session open for many hours. This was caused by the model generation process being kicked off again when the wizard was relaunched, and has been resolved by adding a check to the relaunch that will look for an existing model generation request and continue with the same request if one is found. | |
SR-C42849 | 402885 | Validation corrected to honor Read-Only designations | Validation was happening on Read-Only fields due to pyReadonlyValidation not being honored in all editable cases. This has been corrected. | |
SR-C46537 | 402866 | Code added to format location header for redirect response in IE | When using Internet Explorer, authentication was working but the portal did not load. This was traced to IE mandating the presence of a location header in the response: an HTTP 303 "See Other Response" was being returned along with the initial portal HTML payload, but recent modifications to SAML 2.0 to use the PRAuth Servlet were missing this specific redirect case. To resolve this, generic code has been inserted that adds the location header in all redirect cases. | |
SR-C46793 | 402870 | Fixed single logout for Mashup applications and updated logging for pzAuthServiceSelector | When the GOC (Global Operations Console) application was added as a mashup application to MSP (My Support Portal), logging off from MSP showed the GOC session in a disconnected state despite them using the same SSO application service. The issue was traced to homeurl not being stored properly in mashup use cases, and has been resolved by getting the property homeurl from pxRequestor page instead of pxThread page. In addition, the pzAuthServiceSelector activity was including an 'infoForced' log message. Although the redirect URI does not contain any confidential information, the 'state' parameter should not be visible in logs. This has been handled by changing oLog.infoForced to oLog.debug(). | |
SR-C48056 | 402881 | RRChartDiv tries resize three times before exiting to prevent high CPU usage | Very high CPU usage was reported when two or more tabs were open, even when there was not actual work being performed in the app. This was traced to a chart in Team Dashboard that was displayed with "No data to display"; because the toolbar height was always 0, the resize callback was going into an infinite loop. This has been fixed by modifying the logic in pzRRChartDiv to only try the resize three times to get the height of toolbar or slider before exiting. | |
SR-C49844 | 402924 | Added check for external Cassandra cluster to avoid unnecessary DDS pulse error logging | After upgrade, DDS pulse errors were filling up the jvm.out logs. This was caused by a check in system_auth keyspace that was redundant for sites running their own Cassandra cluster (external). To fix this, DDS pulse operation will check If the Cassandra cluster is external; if it is, it will not check system_auth keyspace and will Omit DDS pulse operation actions except update logging. | |
SR-C50221 | 402868 | Authentication tools now synchronized to handle multiple simultaneous calls | When testing an application that relies on SAMLAuth to create operators and map their data to specific fields it was seen that some users had errant information mapped to their various fields, mostly related to the .pyUserIdentifier and .pyLabel fields. The issue surfaced when multiple user sessions were simultaneously accessing the state of the parameter page, and was traced to an issue where the tools were not synchronized . during the authentication process. To correct this, the tools will be synchronized by storing their state in the parameter page. Context obj will remain constant while the parameter page will be passed in the authentication process. | |
SR-C50284 | 402874 | Top level activity steps are numbered correctly when child steps exist | Top level activity steps were showing as being numbered incorrectly when child steps existed, but saving the rule or refreshing the rule corrected the numbering. This was caused by CSS that was added to the rule form harness to increment the step number; while expanding a top level node the reset happened and then the counter initialized the value. To address this, the code has been changed from CSS counter to CSS attr which will use the index attribute of the current row. Additional CSS cleanups were also done to remove IE9 and other browser-specific styling that is no longer needed. | |
SR-C50381 | 402909 | Save Parameters checkbox in Marketing AssociationCategory now disabled by default to resolve exception during campaign | An exception was thrown in the logs if an access group had any categories added or deleted while running a campaign in the marketing framework. This was traced to the checkbox "Save parameters with this property for access on reopen" being enabled by default, which ended up adding empty category tags to the Access Group Rule while running. This checkbox in pyAssociationCategory property has now been unchecked by default. | |
SR-C57025 SR-C53680 |
402913 402914 |
Filter value Autocomplete uses localized text for the 'Case Type' string | The Filter value autocomplete field of the Case Manager portal bulk action landing page was not working as expected while using the Japanese locale setting. If the locale setting was English or empty, the filter value was displayed correctly in the autocomplete. This was an issue with comparisons being hard-coded to use the literal text string 'Case Type', which was failing in localization. To fix this, a 'when' rule has been added to compare localized text against pyFilterName and use it in the appropriate rules. | |
SR-C51952 | 402949 | Admin user flag correctly passed from Dual user when falling back to the legacy connection manager | When using Dual user configuration with the Base user running Pega, creating a Data Type with a Local Source and then changing the database to CustomerData resulted in an exception citing "insufficient privileges" while trying to save. This was traced to the flag indicating whether the request was coming from an admin user not being passed through ConnectionBrokerAdapter if the system has to fall back to use the legacy connection manager. This was a missed use case which has now been fixed. | |
SR-C53788 | 402936 | Cassandra enhancement added to allows enabling or disabling table truncation | Truncations of Cassandra tables sometimes failed if the compactions were interrupted or if all nodes in the cluster were not available. In order to support more customization, operations have been added to allow compaction of Cassandra tables to be disabled and enabled. The system will also log if a truncate is not possible due to the consistency of the cluster. In order to disable compactions for a DDS Dataset's Cassandra table the following code can be included in an Activity: com.pega.dsm.dnode.impl.dataset.cassandra.CassandraDataSet dataset = (com.pega.dsm.dnode.impl.dataset.cassandra.CassandraDataSet)com.pega.dsm.dnode.api.dataset.DataSets.instance(tools, "<Application Name>", "<DDS DataSet Name>"); com.pega.dsm.dnode.api.dataset.operation.Operation<?> operation = dataset.getOperationByName("Disable Auto compaction"); operation.execute(tools, myStepPage, null); To re-enable compactions for a table the following code can be run as an Activity: com.pega.dsm.dnode.impl.dataset.cassandra.CassandraDataSet dataset = (com.pega.dsm.dnode.impl.dataset.cassandra.CassandraDataSet)com.pega.dsm.dnode.api.dataset.DataSets.instance(tools, "<Application Name>", "<DDS DataSet Name>"); com.pega.dsm.dnode.api.dataset.operation.Operation<?> operation = dataset.getOperationByName("Enable Autocompaction"); operation.execute(tools, myStepPage, null); It is recommended that the disabling of staging tables be performed after the completion of a successful upload and the reading of the staging table is complete. It is recommended that the compactions be re-enabled after the truncation of the table is complete and before the loading of the staging table. |
|
SR-C53967 | 402919 | New wrapper API created to handle external Cassandra nodes for ADM models | When the Decision Data Store Service was configured to use an external Cassandra instance, the Adaptive Models Management landing page did not list the number of models when a strategy referencing an ADP Model was run, and the message "Error loading adaptive decision management server data. Ensure adaptive decision manager and decision data store service nodes are available." was displayed. This issue was traced to the ADM service relying on a FunctionalNodes API provided by DSM service infrastructure that was not able to recognize external Cassandra nodes. To correct this, a new wrapper API pyADMHasFunctionalNode has been created. | |
SR-C53999 | 402911 | Added missing validation trigger for survey question page | Validate rule or preaction was not firing as expected for the Question page in Pega Survey. This was due to a missing step which has now been added to pzDisplayQuestionPagePostAct. | |
SR-C54754 | 402915 | Work by Work Queue modified to use RD in place of deprecated list view | When the "Find" button was selected in Designer Studio >> Case Management >> Tools >> MyWork >> Work by Work Queue, a series of dotted lines that exceeded the section limitation appeared. This was traced to the use of the deprecated function List-view in workbasketlistPopup. In order to support the needed display, the Pega-Landing.pzProcessAndCaseRulesMainMenu Navigation rule has been modified to call a report definition Assign-WorkBasket.pyASSIGNMENTSFORWORKBASKET instead of the deprecated list view. While there is a small difference in user experience and behavior, all the columns being fetched and filters being added will be similar to that of the ones previously seen in the list view. | |
SR-C55017 | 402951 | Mapping corrected for Constraints rule properties | The Constraints rule was not working for page list due to Page context and Page Context class both referring to the same property of pyPageContextClass. This was an error introduced during a UI Ruleform upgrade, and has been resolved by correcting the mapping of the "Page Context" field to pyPageContext. | |
SR-C55058 | 402925 | Stream Service stability improvements and Kafka upgrade | A number of improvements have been made to Stream Service stability, and apache-Kafka has been updated to v1.1.0.1. | |
SR-C55269 | 402958 | Custom filter values correctly pass to custom drilldown filters | Reports with summarize column, drilldown, and custom inline sections were not forwarding values from the custom filter to the drilldowns custom filter. This was a missed use case in earlier work done to ensure custom filter values are populated during runtime, and has been added. | |
SR-C55337 | 402905 | Removed duplicated parameter encoding from Create Work action string generation | Multibyte characters such as Japanese or Chinese passed as parameters to the Create Work action of a button were being encoded/decoded twice. This resulted in parameters being incorrectly interpreted in the newly created Work. To correct this, the parameters will not be encoded during the action string generation for Create New Work, and the necessary encoding will be handled only by SafeURL. | |
SR-C55724 | 402954 | SetTracerOptions modified to correctly pass needed parameter for displaying changes on the UI | When opening trace from any rule form's Action > Trace option and modifying the settings, the changed settings were not reflected on the UI until the tracer window was closed and opened again. This was caused by the data page used to store Tracer Settings not getting its parameters properly and hence was getting duplicated. This has been fixed by modifying the activity SetTracerOptions to pass the missing parameter. | |
SR-C57259 | 402875 | Reference Rules gadget shows results for GET >> Service Activity | Even if a Rule had activities in the GET >> Service Activity portion of the rule, the References panel did not show them. This was a missed use case and has been addressed by using Start-Validate and End-Validate in Rule-Service-REST.Validate activity. | |
SR-C57445 | 404782 | Test Cases tab visible to delegated rules | When the Revision Manager assigned rules in the CR, the TestCase tab was not available to the rules. This has been fixed by adding the test cases tab to "RevisionRuleFormLayout" and "pyRMRuleFormLayoutDE". | |
SR-C57545 | 402942 | Corrected retrieval of externally-stored PDF attachment | After generating a PDF using the out of the box activities GenerateEForm and AttachEForm, the message "Failed to load PDF document" was displayed with a Reload button when trying to open the attachment. This was traced to an implementation error when CMIS/WebStorage/Repositories was updated that neglected to modify AttachEForm to match extra properties that were added to AttachFile. This caused issues when storing an attachment in an external storage system that was skipped in AttachEForm. To correct this, the Link-Attach file has been modified to properly to indicate where the attachment is being stored when it is stored externally. | |
SR-C57557 | 402906 | Work Object lock released correctly when modal dialogue is canceled | The Work Object lock was not being released when the modal dialogue cancel button was clicked. This was due to the primary page not being switched to the pyWorkPage during the cancel, and has been fixed. | |
SR-C57881 | 402879 | Localization support added for page level properties | When trying to change the out-of-the-box pyMessageLabel "This field may not be blank.", the changes were applied at the property level but were not applied at the page level. This was due to Localizations not being handled properly at page level, and the HarnessErrorList rule has been updated to correct this. | |
SR-C58201 | 402953 | Hazelcast thread locking improved | The system was hanging after attempting Hazelcast locking. Tracing showed threads that seemed to be waiting for the system lock to become available so that they could acquire a database lock. This was caused by an implementation issue in LockUtils that did not wait to ensure that the distributed map's lock was released if it wasn't yet available. To correct this, debug logging has been added to the "LockUtils" class which will print when the lock is acquired or released along with the associated stacktrace. In addition, a wait function has been added to the Distributed Map lock to improve the timing between release and grab. | |
SR-C58241 | 402872 | Agent Access Group corruption resolved | The Access Group used by agents was intermittently becoming corrupted. This was caused by a timing issue where sometimes the conclusion was built before the rulesets to the requestor were set up, resulting in the role being added to the RoleNotFound cache. To resolve this, the RoleNotFound cache has been removed so that every time a role lookup happens the system will check the database. | |
SR-C58279 | 402899 | Fixed retrieval of attached emails on cases with Japanese characters | When using the "Send Email" shape on a case life cycle where the case type had Japanese characters, the mail was created and attached into the work object as expected, but an error was generated while trying to open the attached mail from the work object indicating "not found in database or insufficient privilege". This was due to the InsHandle being double-encoded, and has been resolved by avoiding encoding during assembly. | |
SR-C59062 | 402917 | Human and robot assignments workflow access differentiated and separated | Previously, the "Access When" rule did not differentiate between human or robotic operator and each was able to work on assignments intended for the other. When a case was routed to a robotic work queue (and also when the robot VM had already picked up the work and was processing it), the assignment could still be picked up from the Review Harness and moved downstream by a human operator. To resolve this, the property pxAssigneeType has been created in AddAssign (Workbasket and Work List) to hold information about whether it is a human or robotic assignment, and canPerform(Work List & WorkBasket) has been modified to account for the operator type and assignment type. The error "You are not authorized to perform this assignment." will appear when an assignment routed to a robotic queue is accessed by a human. However, if the access group is administrator, the human operator can still progress the robotic assignment without any error. | |
SR-C59391 | 402863 | Handling added for work cases being synchronized after missing flow rule changes while offline | Mobile application work items submitted offline did not always appear when online again. After coming back online, new work items that were created online were synchronized, but the work items that were created offline were not synchronized. This occurred when changes were made to the flow rule after cases had already been created offline. To resolve this, any failure in finishAssignment/ previousAssignment/ doSave actions which does PRocessAssignment will persist the incoming data from device in following way: 1. Create a Pega-Work-OfflineSync case. 2. Merge all the actions related to the failure work object and copy the merged page in pySyncErrorCase page. 3. If a work basket is configured, the newly created case is moved to the work basket else it is moved to the default work basket. To check the data please check the work basket or instances of Pega-Work-OfflineSync. |
|
SR-C60129 | 402896 | Removed default height from pzTimeline_PresentationTab | When using Timeline Control, the Default Height in the presentation tab was not being removed when it was changed to be blank and saved. When the control was opened the next time, it defaulted to show Height 300px and remained at that value despite repeated attempts to blank it. This was traced to a default height in the "pzTimeline_PresentationTab" section, and this default has now been removed. | |
SR-C60591 | 402938 | Spring Framework updated to latest version | In order to provide improved security, Spring framework has been updated to v.4.3.19. | |
SR-C60612 | 402878 | Modified "What's New" widget to remove use of webGL and improve browser performance | The "What's New" widget on the Designer Studio home page was using WebGL to render its background animation. If the browser was running on a virtual machine without hardware acceleration, this widget could cause the browser to become unresponsive. While there was a workaround of using the 'Click the Hide this until next release' button to remove the widget for subsequent logins, the "What's New" function has now been modified to not use webGL. | |
SR-C61277 | 402944 | GRS values supported for pxTestEmailConnectivity activity | After upgrade, the global parameter reference did not work in email accounts. This was an unintended consequence of recent email refactoring: although GRS values were being resolved in the activity and shown in the components tested section of the test connectivity gadget, they were not being passed to the pxTestEmailConnectivity activity. This caused the test connectivity to fail if the inputs configured in email accounts were in GRS syntax. To fix this, the SMTPConnectivity and POPorIMAPConnectivity activities of Data-EmailAccount class have been modified to add the GRS resolved values to an emailAccountPage which is passed as parameter to pxTestEmailConnectivity activity. | |
SR-C61479 | 405988 | Bix extract performance improved by only checking cipher type for encrypted properties | Previously, if no cipher was configured in extract Rules the cipher type defaulted to null and wasn't cached. This caused performance issues when running against the database. In order to improve performance, the code has been modified to only check for cipher type if the property is encrypted. | |
SR-C61596 | 402901 | Fixed escaping of double quotes in UI control Tooltips | Adding a tooltip to a UI control (such as a button) where the tooltip had both text in "double quotes" and out Ex: foo "bar" baz caused a compile time error due to the double quotes not being escaped correctly. This has been resolved by using StringUtils.crossScriptingFilter at design time in pzGenerateLinkOrButton for non template and {{{}}} (triple braces) for template. |
|
SR-C62405 | 402960 | Check added to resolve privilege error on RAP import | Importing a RAP file containing a circumstances rule to alter the table "pr_index_circumstance_def table" was giving an "insufficient privileges" error if the user did not have the privilege to alter the table. Each time a circumstanced rule is created, it attempts to not only insert an instance into the index table but also tries to expose a new column matching the circumstanced property. Given this, creating a circumstanced rule ultimately required access to modify database schema. To resolve this, a check for DASS AutodatabaseSchemaChanges has been added, and the system will bypass making schema changes in saveCircumstanceIndex activity if same is set to false. | |
SR-C62412 | 402939 | VBD enhancements added to assist in cleanup | Running VBD for a long period of time will lead to accumulating partition summaries without a safe means to clean up. Enhancements have now been added to support the following: 1) An API has been added to VBDService to support deletion of partitions from cache AND persistence prior to a date. This can be used as a building block for "keep last X days" functionality on a VBD dataset. 2) The Start Date will be used when loading Partition summary data when the service initially loads. Eviction logic has been implemented to remove partitions along with summary data (e.g. counts and dictionaries) for partition keys earlier than Start Date. Eviction occurs when Start Date moves ahead of partition's timestamp. If Start Date is updated backward by user and there exists data in Cassandra on these dates, then the partition summaries should be loaded into the cache. This requires a full cache reload which will be automatically triggered. |
|
SR-C62504 | 402955 | Corrected PushLogUsage data integrity error | PushLogUsage was correctly sending usage data every day at 1:30AM GMT for all usage between 0000 GMT previous day and 0000 current day, but a few minutes later an unknown process was running that corrupted the previous day's information. This was traced to an error in the daily push and has been corrected. | |
SR-C62607 | 404668 | Corrected cache error with multiselects sourced from report definitions | Certain multiselects sourced from a clipboard page or report definition would work correctly the first time they were displayed in the dropdown, but if no value was selected the dropdown disappeared on subsequent clicks. Multiselects sourced from a data page worked as expected. This was caused by an error in the cache process which was not correctly updating the data, and has been fixed. | |
SR-C63228 | 402935 | Profiler Landing Page and Snapshot Viewer enhancements | The following enhancements have been made to the Profiler Landing Page and Snapshot Viewer: - Decision Profiler now supports multiple nodes for a single profile event. Click 'Start profiling', enter a session name, and all available nodes in the cluster will be listed in the modal dialog with their node ID and IP address. The current working node will be marked out and selected by default. - Filenames are in the format sessionName/sampleType/nodeId, and the snapshot zip file contains results from all nodes involved in the profile. - Only one profiling session cluster wide is allowed. The Start button is disabled and Stop button enabled if at least one node has profiling session running. - If a session cannot be started for whatever reason on one or multiple nodes, the reason will be indicted on the corresponding nodes and the session will be canceled. - Performance snapshots are recorded on every node, regardless of where the session originally started, allowing them to be opened / downloaded from every involved node. - A snapshot can be removed from the landing page via a delete icon. |
|
SR-C64292 | 405249 | Corrected multiselect dropdown event handling for IE11 | When using IE, multiselect dropdowns would work correctly the first time they were displayed, but disappeared on subsequent clicks. This has been fixed by correcting the event handling for IE11. | |
SR-C65417 | 406208 | Autocomplete control corrected for dynamic index section | When section was defined on the static index of pagelist (i.e. pagelist(1) ), the value selected in autocomplete was being set properly but when section was defined on dynamic index of pagelist (i.e. pagelist() ), the value selected in autocomplete was not being set. This was traced to LAST and FIRST predicates not being correctly resolved in templating. To correct this, while rendering auto complete with pzpega_ui_template_autocomplete.js file, the system will resolve predicates using the currentContext.resolvePredicates API. | |
SR-C65791 | 404437 | database connection leak resolved | A database connection leak was traced to the resultset package not being closed if an exception occurred while executing the query. A try/catch has been added to the database.list method so that in the case of an exception, the ResultSetPackager (which was created in the line above the database.list call) will be properly closed. Additional error logging has also been added. | |
SR-C66639 | 406176 | Localization added to "Text" in Themes page | The header "Text" in the Themes page was not localized properly due to the field value created in the wrong applies-to class . There is a field value in @baseclass but is in Pega- DecisionArchitect ruleset might not have been considered while exporting rules for translation . Will create another one in @baseclass /Pega-EndUserUI | |
SR-C67164 | 406358 | Operator security bypass now available to multitenancy environments | In Pega 8.1, whenever operator records are imported via a RAP file they are disabled by default for the purpose of increased security. When performing this operation there is an option to bypass this feature so that operators are not disabled upon import, but that bypass was not available in multitenancy environments. To allow or that use, this release includes an enhancement to expose a parameter on PegaRULESMove_Zip_To_DB to support bypassing operator security. | |
No SR associated | 403102 | Links updated for Security Checklist rule documentation | The links for the following tasks in the documentation for the Security Checklist rule have been updated: "Secure web.xml"; "Appropriately encrypt data"; and "Define appropriate access control for client personal info subject to regulations like EU GDPR". In addition, the task "Configure Dynamic System Settings for production" has been renamed to "Define appropriate Cross-Site Request Forgery (CSRF) settings" and is linked to the CSRF landing page. |
|
No SR associated | 404593 | Thread name implementation fixed for FCM use with micro DC | When attempting to invoke a remote case in the Interaction Manager portal via FCM with the Customer Service for Insurance application which uses micro DC, the case was not invoked and an empty screen was displayed. Invoking the case from the interaction portal resulted in a JavaScript error. Invoking the case from a WSS or directly from the Create button in Designer Studio worked correctly. This was traced to a recent change to the implementation for generating the thread name. Because of this, CRM apps could not load the Federated cases via micro DC. This has been fixed through changes in "pzFCMMashupGadget" to replace the slash with underscore for the FCM thread. | |
No SR associated | 406436 | OIDC and authorization_code flow corrected | The OIDC and authorization_code flow was not working work on the first attempt. This was traced to the server that was performing the OAuth 2.0 authorization_code redirecting straight to the Pega application after successful user authentication instead of returning an authorization code via redirect_uri. As a result, the Pega application was rendered in a external Safari window which is supposed to be used for user authentication only. Second and subsequent attempts to perform the OAuth 2.0 authorization_code flow were successful and the Mobile Client was logged in. This was caused by the unnecessary retainment of state parameters in the OIDC flow, and has been fixed by removing the code that appended the querystring parameters used for the Hybrid Client. | |
No SR associated | 402877 | Merge Wizard errors fixed, and created rules will use the highest ruleset version available | Code errors in the Merge Wizard that were causing Null Pointer Exception errors have been fixed, In addition, branch rule sets created through this wizard did not have the 'Application validation' option and rule set pre-requisite filled automatically; the system has been updated so the version prerequisite will be the highest existing ruleset version in the ruleset. |