INC-208424 · Issue 704598
Custom header character encoding for Subject added
Resolved in Pega Version 8.6.4
Case correspondence that contained a Subject with accent characters such as "Invitation à être" was being rejected by MailJet on the basis of encoding issues on the "Thread-Topic" when using custom headers. The error "BAD HEADER SECTION, Non-encoded non-ASCII data (and not UTF-8)" was generated. This was traced to the Send Email Smart Shape handling when using custom headers, and has been resolved by encoding the Subject before appending it to the Thread-topic header while adding custom headers.
INC-199341 · Issue 694714
Content-type values made consistent
Resolved in Pega Version 8.6.4
The content-type for service APIs was returned as 'text' for 401 errors when using a custom authentication type instead of the parent-type/child-type format such as text/plain, text/html, application/json, etc. This has been corrected.
INC-199076 · Issue 703301
Revalidate of class rules successful after major version skimming
Resolved in Pega Version 8.6.4
When performing a major ruleset version skim and revalidating all rules, most class rules were failing during the revalidation. This was a gap in how Ruleset List and Major Version Skim work together. When calling getRuleSetPrerequisites(“rulesetA:01-01-01”), the API uses uses the current application context to return a ruleset list from an application which owns rulesetA and its compatible version, but if no owning application was found from the current application context, a list of rulesetA and PegaRULES:XX-XX-XX was returned. This caused a conflict between what the system was trying to validate and the ruleset versions returned. To resolve this, an update has been made which will exclude the version number for this comparison if no owning application is found.
INC-199192 · Issue 689038
Check added to ensure StepPage generation for Top keyword
Resolved in Pega Version 8.6.4
A ClassCastException was thrown when top page is used, indicating "com.pega.pegarules.data.internal.clipboard.ClipboardPropertyImpl cannot be cast to com.pega.pegarules.pub.clipboard.ClipboardPage". This has been resolved by adding a check which will generate a myStepPage for Keyword "Top" as necessary.
INC-213308 · Issue 712075
Fallback added for missing fileName in MultipartHTTPResponse
Resolved in Pega Version 8.6.4
Given a multipart/form-data response with multiple attachments, when there was no explicit fileName header provided for a body part, the engine skipped processing the part and no data was present on pyRequestAttachmentPage. This has been resolved by adding a fallback in HTTPClientUtils#handleMultipartHTTPResponse() so that if no fileName is present, the 'name' parameter of the Content-Disposition header field will be used.
SR-D83424 · Issue 552723
Class Loader cache values wrapped with WeakReference for improved cleanup
Resolved in Pega Version 8.1.9
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-211178 · Issue 704593
Decimal parameters retain null value instead of being set to 0
Resolved in Pega Version 8.6.4
When mapping any data in 8.6+, if the source is a decimal property rule and the target is a parameter defined as decimal, the decimal parameter's value will be 0 if the source property is null. This was a behavior change from previous versions of Pega where the target parameter would be null. This has been resolved by changing the code generation for the read operation on the parameter decimal type assignment to use resolveToString() instead of calling resolveToBigDecimal() so a null value is retained..
SR-D88499 · Issue 551188
Check added to minimize Obj-Open-By-Handle error logging
Resolved in Pega Version 8.1.9
When using a Data Type with the "Automatically generate a unique id " option, calling the Save-DataPage method by using the savable data page of the data type finished correctly but showed Obj-Open-By-Handle errors on PegaRules.log. Investigation showed the exception was thrown when running the save plan from DataPageSaverImpl: while attempting to run the save plan, the system does not know whether a parameter (pyGUID in this case) will be required to run the save plan or not, meaning that it can't detect any possible error in DataPageSaverImpl. The implementation instead makes a call to db.open to check if an instance exists and hence logs are thrown. To resolve the error logging, a check has been added: if the save-to class has an autogen key and the savable data page instance doesn't have the autogen key in it, the system will directly call pxCreateRecord. This will avoid a call to db.open to check if instance exists and hence no failed logs will be thrown. This partial change will work only for classes having an autogen key and in cases where the page is trying to create a record by intentionally not passing the key.
INC-125633 · Issue 589576
Oracle performance improvement
Resolved in Pega Version 8.1.9
Poor performance was seen when importing a RAP with schemas using Oracle. To resolve this, an update has been made which will set the Oracle tuning parameter at the session level by altering the setting \"_OPTIMIZER_PUSH_PRED_COST_BASED\""=false before the SMA query involving all_constraints. The setting will be returned to true after the execution of the SMA query. This is controlled through the prconfig setting '""database/performance/smaqueryperformanceenabled"" which defaults to true so the setting and unsetting of the Oracle parameter is automatic."
INC-135550 · Issue 581375
Resolved slowness in retrieving case attachment from AWS
Resolved in Pega Version 8.1.9
Attempting to open a case attachment caused the application to slow over time and eventually became unresponsive. Restarting the Tomcat nodes improved the response time. This was traced to a null Buffered Input Stream not being closed correctly when using AWS, and has been resolved by adding the needed logic to PegaGadget-Pulse.pzStorageAttachSelectedFile. In addition, enhanced logging has been added to Embed-Repository-S3.pyGetFile. Enhancements have also been added to improve the use of AWS file storage: - Logging for AWS SDK connection metrics can be activated on a per-repository basis, either through the ruleform or through the DSS storage/class/:/enableMetrics. - INFO logging can be enabled on PegaAWSSDKMetricReporter to periodically output averages of recorded metrics for all registered S3 repositories with metric collection enabled, or INFO logging can be enabled on PegaAWSRequestMetricCollector to output recorded metrics on every client call for all registered S3 repositories with metric collection enabled. - The interval at which PegaAWSSDKMetricReporter logs metrics at can be configured with the DASS storage/AWSSDK/metricReportingInterval. This DASS is a system-wide setting, and not a per-repository setting. The default reporting interval is 90 seconds, and metric collection is disabled on all repositories by default.