JDK
Mule Runtime 3.8.1 Release Notes
August 19, 2016
Security Notification for On-Premises Deployments: A security vulnerability was found in this version of the Mule runtime engine. Error handlers do not escape exceptions generated for 404 and other response codes before adding the exceptions to the HTTP response. If the exception contains executable code, the interpreter will execute the code. If you are using this version of the Mule runtime engine on premises, upgrade to the latest version of Mule 3.8.x or to version 3.9.x. Alternatively, you can migrate to Mule 4. Note that extended support of Mule 3.8.x ends in 2021. |
Mule Runtime 3.8.1 includes the following enhancements:
-
GA support for RAML 1.0
-
Improved support for COBOL Copybook with DataWeave
-
Support for user defined data types in the database connector
-
DataWeave support for bigger files
-
Many other bug fixes and improvements
The DataWeave Maven artifactId has changed in this release. COBOL Copybook support for DataWeave is limited. The following release notes describe the change and limitation.
Supported Software
Mule was tested on the following software:
Software | Version |
---|---|
JRE 1.7.0, JRE 1.8.0 (Recommended JRE 1.8.0_91/92) |
|
OS |
MacOS 10.11.4, HP-UX 11i V3, AIX 7.2, Windows 2012 R2 Server, Windows 8.1, Solaris 11.3, RHEL 7, Ubuntu Server 15.04 |
Application Servers |
Tomcat 7, Tomcat 8, WebLogic 12c, WildFly 8, WildFly 9, WebSphere 8, Jetty 8, Jetty 9 |
Databases |
Oracle 11g, Oracle 12c, MySQL 5.5+, DB2 10, PostgreSQL 9, Derby 10, Microsoft SQL Server 2014 |
The unified Mule Runtime 3.8.1 and API Gateway is compatible with the following software:
-
APIkit 3.8.x
-
Anypoint Studio 6.0.x and 6.1.0
Enhancements and Changes
-
DataWeave Support for Bigger Files:
DataWeave now supports processing files up to 2 GB for XML, JSON and CSV by using temporary files to store the data instead of loading everything in memory. No change is required to DataWeave applications to use this feature. The new capability takes effect automatically. When a file reaches the 1.5MB threshold, data storage to temporary files begins.
-
Change to DataWeave Maven ArtifactId:
The artifactId has been changed from mule-plugin-weave_2.11
to mule-plugin-weave
.
-
Change to DataWeave auto conversion algorithm:
The algorithm used to auto convert data types has been modified to make it more predictable. Some conversions might work differently. Specifically sizeOf of a numeric attribute will return 1 now. Note that sizeOf() doesn’t support numeric arguments, so it will be autoconverted. In these cases it is recommended to use explicit type coersion. Example: sizeOf(payload.age as :string)
.
-
Changes to Flat File Format Reader Configuration for DataWeave
When using an input of type flat file in DataWeave, the encoding
parameter is no longer available as a reader property. Character encoding is now defined from standard DataWeave conventions (normally: getting it from the Mule message properties).
Added a reader property missingValues
to control how to represent fields without values.
Known issues
COBOL Copybook support for DataWeave does not support the following:
-
Zoned decimals
-
REDEFINEs. You can modify your Copybook to remove the REDEFINE and specify which segment you wish to use.
-
COMP-1, COMP-2, COMP-5
-
VALUE clauses for non-alphanumeric fields
-
DATE FORMAT
-
RENAME
-
SYNCHRONIZED
-
Periods in PIC clauses or in VALUE clauses
-
Tab characters in the Copybook
Migration Guide
If you’re migrating from 3.8.0 and using Mule with Maven and you are using DataWeave in your projects, you must modify the POM reference to DataWeave, as it has now changed name slightly. See DataWeave XML Reference for more details.
Bundled Runtime Manager Agent
This version of Mule runtime comes bundled with the Runtime Manager Agent plugin version 1.5.1.
Community Edition Fixed issues
Issue | Description |
---|---|
MULE-7608 |
New Database: Add support for user defined data types |
MULE-8196 |
Listener 503 responses do not include an informative http body |
MULE-9546 |
JMSMessage-to-object-transformer doesn’t propagate DataType |
MULE-9636 |
Can’t call method in Java-Component when argument is primitive data type |
MULE-9659 |
Lifecycle error when deploying application if there are two inbound-endpoints with the same URI registered |
MULE-9660 |
OAuth2 authorization-code-grant-type is always expecting a refresh_token when it is optional according to the spec |
MULE-9670 |
Reason phrase and entity are mistaken in RequestHandler |
MULE-9712 |
Fix for FlowVars' DataTypes not being copied after scatter-gather |
MULE-9730 |
Support grizzly’s PRESERVE_HEADER_CASE property |
MULE-9740 |
No object DCH for MIME type |
MULE-9741 |
Deadlocks comparing MuleEndpointURI |
MULE-9757 |
SFTP: Returning of sftp clients to the pool are blocked waiting for the reconnection strategy |
MULE-9816 |
Typo in TransactionJournal |
MULE-9886 |
HttpResponseBuilder does not override Content-Length header after recalculating it |
MULE-9891 |
doc:name in reference exception strategy overrides doc:name of the flow |
MULE-9903 |
Verbose logging for Runtime |
MULE-9931 |
Allow configuration of the size of the transaction log |
MULE-9933 |
RestrictedSSLSocketFactory needs to implement getDefault method so it can be set as the socket factory used by the Ldap provider in the JVM |
MULE-9996 |
First successful is not notifying all paths |
MULE-10003 |
OAuth2 authorization-code-grant-type should reuse refresh_token |
MULE-10079 |
Avoid Quartz update check |
MULE-10089 |
Ensure that QueueManagers are initialized before connectors |
Community Library Changes
Issue | Description |
---|---|
MULE-9032 |
Upgrade BouncyCastle libraries to version 1.54 |
MULE-9729 |
Upgrade grizzly to 2.3.25 |
MULE-9785 |
Upgrade c3p0 to 0.9.5.2 |
Enterprise Edition Improvements
Improvement | Description |
---|---|
AGW-830 |
Troubleshooting: Name threads |
AGW-831 |
Improve gatekeeper logging |
Enterprise Edition Fixed Issues
Issue | Description |
---|---|
SE-3848 |
Wrong MIME type for lookup flow payload |
EE-4879 |
Hazelcast.xml configuration not working properly |
EE-4941 |
JDBC Map Store - Uncaught exception when database is down |
EE-4946 |
Exception in Batch commit causes memory leak |
EE-4978 |
Log Resource leak - Upgrade c3p0 to version 0.9.5.2 or newer |
EE-4979 |
Fix Batch flush upon stop TestCases |
EE-4984 |
Multicast still enabled when set to false |
EE-4986 |
Bitronix transaction manager used the wrong thread to shrink resource pools |
EE-5008 |
Add missing 3.6 version to spring.schemas |
EE-5023 |
Bitronix caching connection factory does not work in cluster |
AGW-331 |
Custom Policy is not applied if resource and api-pointcut are defined on the same pointcut |
AGW-751 |
Log error when starting Mule without configuring API Gateway |
AGW-813 |
When using Basic Auth policy with JDK7 and TLSv1 disabled user authentication fails |
AGW-817 |
ThreatProtectionPolicies break app with DataWeave |
AGW-818 |
Flush throttling/rate limiting data to disk on shutdown |
AGW-826 |
Resource level pointcuts are not working with Gateway RAML proxy v3 component |
AGW-827 |
Throttling policy does not work with resource level pointcuts using RAML Proxy |
AGW-835 |
Remove client secret from logs |
AGW-836 |
External Token Policy fails in OpenAM when scopes are configured |
AGW-839 |
Policy violations for Throttling policy are not sent |
AGW-844 |
Policy is unapplied after unapplying a second policy with a pointcut affecting the same endpoint |
AGW-847 |
When Rate Limiting/Throttling custom policy is unapplied and then applied again, counters are not reset |
AGW-850 |
RateLimit policy is unapplied silently when a second rate limit policy is applied to the same resource |
AGW-851 |
Exception is thrown if per resource level policy is applied when API Gateway restarts |
AGW-855 |
Race condition obtaining JWT from apiplatform and making depending calls |
AGW-857 |
Client ID enforcement is not correctly applied when using per resource level injection |