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.
INC-139611 · Issue 587599
Timezone.getDefault function replaced for performance improvement
Resolved in Pega Version 8.5.1
Blocking threads were seen around the GregorianCalendarFactory.clearObject(Object) function, leading to an adverse impact on the performance. TimeZone.getDefault() is a synchronized method call, and under high load this method caused contention when more date-related APIs were invoked. To resolve this, Timezone.getDefault() has been removed and the function has been assigned to a static variable used in the clearObject() API.
SR-D97738 · Issue 580162
Class Loader cache values wrapped with WeakReference for improved cleanup
Resolved in Pega Version 8.5.1
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..
INC-122072 · Issue 581029
Delay in writing database template records resolved
Resolved in Pega Version 8.5.1
After upgrade. a real-time event based campaign with an offer flow that used a database template showed an excessive delay in updating the database template. A queue entry related to "WriteOutboundAgent" was also showing as failed, and analysis of the logs showed that the transaction type was not being set. This was traced an exception during a regular close operation of the result set iterator: the API used to close the transaction contained code specific to PostgreSQL while the site was using Oracle. This has now been resolved.
INC-204998 · Issue 705630
Data page definition reload made more robust
Resolved in Pega Version 8.6.4
The data page was intermittently being removed from the cache. This was traced to the use of a thread from ThreadContainer to reload the data page definition: a null thread could be returned if the request came from a master agent, which would then cause the definition reload to fail. This has been resolved by updating the system to use the current thread in context to reload the data page definition.