INC-152057 · Issue 621208
S3 attachment migration handles LInk-Attachment with multiple instances
Resolved in Pega Version 8.4.5
After S3 attachment migration, some attachments were intermittently not opening and displaying an error relating to being unable to load the file. Investigation showed that the attachments that failed to open did not have a pxStorageType tag in the XML of the work item. After the migration is done, the corresponding Data-WorkAttach-File and Link-Attachment instances are updated to point them to the repository. In this case, multiple LInk-Attachment instances were pointing to the same Data-WorkAttach-File instances, so only one Link-Attachment was updated and all of the other instances pointing to the same Data-WorkAttach-File instance were rendered unusable. While there was a workaround of manually updating the storage type in the database, this has been resolved by updating "pzgetattachmentcontent","pzupdatesourcereferences", and "pzuploadcontenttoexternalstorage" to check whether attachment is already migrated or not using the boolean parameter "isAttachmentAlreadyMigrated" to ensure all of the other Link-Attachment instances for a particular attachment are updated. If a migration was done and all Data-WorkAttach-File instances are pointing to a repository with some Link-Attachment instances not updated, those will be updated by running the migration again.
INC-153014 · Issue 625695
Handling added for missing archival class definitions
Resolved in Pega Version 8.4.5
Handling has been added to avoid suspending the archival process when a class definition no longer exists in the system. If the system does not find a class corresponding to a configured case type, the exception generated will be logged and processing will continue with the next case type.
INC-154026 · Issue 631040
Resolved exception from expanding deserialized Data Page
Resolved in Pega Version 8.4.5
When using a data page backed by a report definition where the data page data type was Rule- and the virtual page data type was Rule-Obj-Property, serializing and deserializing the data page and then expanding the deserialized data page generated the exception "the reference .pzInsKey is not valid. Reason: .pzInsKey is mapped to class Rule-Obj-Property, which is not the primary class of the list: Rule-; must specify a group name in mapping". The issue occurred only if "Run on Data Page" on the data page was checked and "Report on descendant class instances" on the report definition was unchecked, and has been resolved by updating the runLoadActivity() of DeclarativePageDirectoryImpl to skip setting pyObjClass for the report definition if it already present, i.e. if already set by the loader activity.
INC-155294 · Issue 626661
Enhancement added for attachment size handling with Kafka
Resolved in Pega Version 8.4.5
Attempting to send an email attachment larger than 2 MB resulted in the error "Caused by: org.apache.kafka.common.errors.RecordTooLargeException: The message is 8101592 bytes when serialized which is larger than the maximum request size you have configured with the max.request.size configuration." This has been resolved by updating the Stream SPI size to 2.0.5-14 to support custom producer configurations. The settings can be passed as environment parameters, for example 'Dstream.producer.max.request.size=500990'.
INC-155573 · Issue 617516
Email Listener updated to handle double quotes
Resolved in Pega Version 8.4.5
The From field in Requestdata was blank for emails that had a FROM address that contained double quotes, causing them to not be read by the email listener. This has been resolved by modifying the regex pattern to accept double quotes, square brackets, and any ASCII characters between quotes.
INC-156178 · Issue 637676
IOException logging changed to warn
Resolved in Pega Version 8.4.5
JBoss error messages related to "Exception occurred while closing the Stream" were appearing as a side effect of load on the system or network issues. As this is not a functional concern, the logging for these exceptions has been changed so they will only be shown if warn is enabled.
INC-156758 · Issue 629936
ExpandStream called before Page-Merge-Into to ensure correct merge
Resolved in Pega Version 8.4.5
The Page-Merge-Into method was not merging the source page into the target page when the use case was run without tracer, but merged properly when run with tracer. This was traced to an intermittent issue with expanding properties, and has been resolved by calling expandStream on the source property if it is unknown prior to checking if the source and target properties are merge compatible.
INC-158018 · Issue 633372
Archiving updated to include pxobjclass in CTE column list
Resolved in Pega Version 8.4.5
After enabling the case archival feature on a casetype, cases were getting stuck in the Archive-Ready state while being archived, and a 'column not found' error was seen. Investigation showed that the generated SQL statement used to retrieve the resolved case instances used a common table expression (CTE) whose columns were inskey, insclass, and parentinskey, and the query that referenced the CTE was attempting to compare the column pxobjclass when pxobjclass did not exist in the CTE's column list. To resolve this, the CTE column list has been updated to pzinskey, pxobjclass, and parentinskey to prevent the 'column not found error' from occurring, and the query that referenced the CTE was also updated to use the correct column names and aliases.
INC-159143 · Issue 628921
Methods updated to prevent rounding of JSON response decimals
Resolved in Pega Version 8.4.5
When using a REST connector for an outside service, precision numbers in the JSON response were being rounded or truncated when parsed for the DataSource page. For example, a JSON message with a value like 6045.900000000000000001 became rounded to 6045.9. This happened in both methods used for fast and non-fast processing, and has been resolved by treating the decimal value as a string and then creating a BigDecimal object out of it to avoid truncation in the fast processing scenario, and by adding mapper.enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS); for the non-fast processing scenario.
INC-159879 · Issue 627829
Race condition resolved for input/output pipe streams
Resolved in Pega Version 8.4.5
Writing to S3 using file data set was failing with the error "Exception occurred while uploading file". The system was relying on PipedInputStream for getting the data from the file while uploading, which needs to be connected to PipedOutputStream which holds the data to be uploaded. Investigation showed a race condition was occurring where for some use cases the reading of inputStream was happening before the connection of I/P and O/P streams, resulting in a "Pipe not connected" error. This has been resolved.