Mule Runtime 3.8.0-M1 Release Notes

MuleSoft is pleased to announce the milestone M1 release of the Mule 3.8.0, containing many exciting improvements:

  • This release unifies the API Gateway runtime with the core Mule runtime, simplifying development and operations. Please see the migration guide for information on how to migrate.

  • Improved troubleshooting messages, so that you can see the location of any errors in the flow and you receive better error messages for common problems.

  • TLS Improvements: TLS context can be shared in a domain, the cipher suite and protocol configuration is allowed at a connector level. TLS 1.0 is now disabled by default and there is a new "insecure" mode for local testing which doesn’t perform certificate validation.

  • Includes the new DataWeave release, which contains support for flat files and performance improvements.

  • New functionality for configuring the use of clusters. This Includes:

    • a 'quorum' parameter that determines the minimum number of servers that should be active for flows to be executed

    • JDBC object store improvements

    • Possibility to monitor the cluster members via the JMX protocol.

  • Additional tuning parameters for batch processing

January 26, 2016

Supported Software

Mule was tested on the following software:

Software Version


JRE 1.7.0 (Recommended JRE 1.7.0_79/80), JRE 1.8


MacOS 10.10.4, HP-UX 11i V3, AIX 7.1, Windows 2012 R2 Server, Windows 8.1, Solaris 11.2, RHEL 7.0, Ubuntu Server 15.04

Application Servers

Tomcat 7, Tomcat 8, WebLogic 12c, Enterprise 6.1, Community 8, Community 8, WebSphere 8, Jetty 8, Jetty 9, Wildfly 8


Oracle 11g, MySQL 5.5+, DB2 10, PostgreSQL 9, Derby 10, Microsoft SQL Server 2014


  • MULE-9236 Make MuleDocumentLoader extensible

  • MULE-9204 HTTP Requester + OAuth: Add the option to send Client id/secret with Basic Auth using Client Credentials

  • MULE-9173 Exclude xalan serializer from CXF

  • MULE-9150 Configuration resources in SpringXmlConfigurationBuilder should be extracted to a separated method

  • MULE-9041 Keep property with original remote address even if X-Forwarded-For present

  • MULE-9012 Include the name of the XML file where an element is declared when logging the element path

  • MULE-8982 Add debug information on HTTP requester

  • MULE-8974 DatasourceFactory must dispose disposable datasources

  • MULE-8971 Define an XSD type for TimeUnits

  • MULE-8958 Allow insecure HTTPS connections

  • MULE-8936 The 'protocol' attr in an http:request-config element does not support '${propertyname}' as value

  • MULE-8844 until-successful should propagate the root exception

  • MULE-8796 Unnecessary tracking of overridden non disposable objects in TransientRegistry

  • MULE-8694 Allow to configure authentication in test class JmsBrokerSetUp

  • MULE-8680 Allow TLS context to be shared in a domain

  • MULE-8480 Consider renaming @ImplementationOf to @ExtensionOf

  • MULE-8479 Operations of an Extensible extensions should not require to be annotated with @ImplementationOf

  • MULE-8328 HTTP delete body is not allowed

  • MULE-8046 Allow to enable/disable cookies in the outbound part of the HTTP connector

  • MULE-6118 until-successful should set exception payload with last exception received before sending to DLQ

  • EE-4653 Add a way to resume batch job instance in BatchManager

  • EE-4494 BatchJobInstance id should be configurable

  • EE-4492 RecordVars and record payload should be editable in a commit block

Deprecated Features and Functionality

None in this release.

Fixed Issues

  • MULE-9324 No exception is thrown when folder in path is removed

  • MULE-9323 WS consumer fails when reading secured WSDL

  • MULE-9319 Async Reconnection strategies can’t be defined globally

  • MULE-9317 HTTP outbound credentials not picked up if credentials exist from inbound

  • MULE-9272 Improve logging when a TLS error occurs

  • MULE-9237 Null pointer while catching the exception thrown from Enricher processor

  • MULE-9229 UntilSuccessfulTestCase is throwing NPE

  • MULE-9226 Logging issues when using domain configuration with JMS connector

  • MULE-9224 Using multiple threads in an until successful causes an exception if the message is rejected

  • MULE-9205 XmppMessageDispatcher doesn’t reconnect

  • MULE-9193 Big memory footprint on XMPP Transport: org.jivesoftware.smack.PacketCollector

  • MULE-9189 RegistrationException "More than one AbstractJmxAgent" when using domain and enabling jmx

  • MULE-9185 Cleanup of Events put in ThreadLocal with RequestContext

  • MULE-9183 CXF: Status code for successful one-way operations should be 202

  • MULE-9182 CXF proxy trying to send response for one-way operations

  • MULE-9175 JSON validate doesn’t pick up redirects if it’s in the application classpath

  • MULE-9174 Security credentials not passed to JMS broker when using 1.0.2b spec

  • MULE-9167 MEL expressions in Groovy Transformer/Component property bindings not being resolved

  • MULE-9165 Async connector notifications degrade performance noticeably on high load

  • MULE-9163 MVEL gets in an infinite loop in CompileException

  • MULE-9161 Invoking subflow from FuctionalTestCase using getSubFlow() is failing under certain conditions

  • MULE-9156 JSON schema validation fails when schema contains ref to local file

  • MULE-9146 AsyncUntilSuccessful uses a fixed thread pool

  • MULE-9145 Enricher fails when "mule" is not the default namespace

  • MULE-9144 SFTP Request doesn’t autoDelete original file

  • MULE-9140 "host" header expected even for HTTP 1.0 clients

  • MULE-9132 Ensure proper closing of Statements and ResultSets

  • MULE-9085 MuleDocumentLoader must generate a level 3 DOM tree

  • MULE-9074 WebService Consumer: xsd:import for external resources through HTTP fails with java.io.FileNotFoundException

  • MULE-9069 ExecutionInterceptor causes a 50% regression in the proxy scenario.

  • MULE-9066 set-property throws runtime exception if the propertyName is empty

  • MULE-9065 IndexOutOfBoundsException when header key has empty value

  • MULE-9062 Dropping new domain.zip file does not redeploy apps associated with that domain

  • MULE-9061 RandomAccessFileQueueStore leak files and space after being disposed

  • MULE-9051 ForEach fails to provide path elements when not initialised

  • MULE-9050 Jersey module doesn’t support multipart requests

  • MULE-9045 HTTP Listener not sending reason phrase when error occurs

  • MULE-9044 HTTP Listener returning 500 instead of 400 on invalid Content-Type

  • MULE-9040 Database Connector: "No suitable driver found" on redeploy

  • MULE-9029 100-Continue response is sent as two packets even though chunked transfer encoding is disabled causing connection to hang

  • MULE-9027 TestsLogConfigurationHelper does not load correctly the Log4j config file in Windows

  • MULE-9025 Changes on domain are not being registered by applications

  • MULE-9023 Scatter-gather generates wrong data type when Content-Type header is present

  • MULE-9019 Wrong value comparison in AbstractJob @ quartz transport

  • MULE-9016 Processing XLSX files that have comments in mule fails

  • MULE-9014 Processors inside a scatter-gather do not fire notifications

  • MULE-9013 Event group expiration fails when persistent object store is used

  • MULE-9009 [FIX INCLUDED] MimeType is not set in DataTypeFactory

  • MULE-9006 XmlToDomDocument transformer conflicts with ObjectToByteArray transformer

  • MULE-9001 Paths for processors in dynamically referenced subflows are null

  • MULE-8979 Some elements do not have their annotations available at runtime

  • MULE-8978 CXF with JMS binding port in WSDL failing

  • MULE-8973 Null pointer exception in a scatter-gather inside a dinamycally referenced sub flow

  • MULE-8966 Query parameters without value (?param) throws NPE

  • MULE-8965 Configured XA transaction timeout is ignored

  • MULE-8964 JMS polls for messages using XA transaction timeout

  • MULE-8962 HTTP Connector throws a NPE when the value for a uri-param is null

  • MULE-8961 Message access violation when making a request inside an enricher

  • MULE-8960 Can’t find a transformer on applications running inside a domain

  • MULE-8956 XPath expression right after blocking http request can’t access the http response payload

  • MULE-8955 MEL: Concurrent use of a function variable fails

  • MULE-8951 SFTP connection leak when the user doesn’t have permissions

  • MULE-8947 Base64Decoder transforms string and deletes last character

  • MULE-8944 Cannot use URNs in JSON Schema ID attribute with Mule JSON Validator

  • MULE-8938 Connector and Endpoint message notifications not fired when an exception is thrown

  • MULE-8934 Temp queue files are not removed when serialization fails in QueuePersistenceObjectStore

  • MULE-8933 MEL: Concat expression with an empty term throws obscure error

  • MULE-8932 Applications in domain failing with "Could not find a transformer to transform" error

  • MULE-8929 Proxy validation looses XML tag when payload is body

  • MULE-8927 Have to manually encode @ (or other special characters) when setting the username/password for an smtp sender

  • MULE-8916 Unclear message when more than one transformer is available

  • MULE-8913 Applications failing with "Could not find a transformer to transform" error

  • MULE-8903 Class GrizzlyServerManager not logging the host and the ip

  • MULE-8841 Enricher attempts to enrich response message also when using non blocking processing strategy.

  • MULE-8829 NTLM proxy authentication in HTTP Requester sends basic authentication

  • MULE-8822 OAuth2 Refresh token logic fails after restart for preexistent connection

  • MULE-8821 Concurrent calls to the OAuth2 authorize MessageProcessor fail when passing different values for accessTokenUrl

  • MULE-8819 MVEL prints stacktraces to the console

  • MULE-8816 Cron job used by multiple Poll component in different projects misfiring

  • MULE-8815 Can’t call stored procedure with parameterized queries (Database does not supports streaming on stored procedures)

  • MULE-8813 Multipart Content-Type header is sent twice when copying attachments

  • MULE-8812 Multipart content is always sent chunked by listener

  • MULE-8804 CXF does not set the correct mimeType

  • MULE-8800 Multipart content should include Content-Disposition header

  • MULE-8798 Message mime type/encoding must be reset when payload is set without a datatype

  • MULE-8790 If multiples HTTP response headers are associated to the same header name, only the first one is mapped to an inbound property.

  • MULE-8789 Socket buffer sizes in the HTTP transport for outbound connections not set correctly

  • MULE-8788 Polling message receiver should unregister scheduler on dispose.

  • MULE-8786 WSC with basic auth wraps "error"s HTTP status code by throwing exceptions with timeouts

  • MULE-8779 Hostname verification not working correctly with HTTPS proxy

  • MULE-8776 Email transport fails to read new emails if inbox has 7 or more read emails in it

  • MULE-8771 Synchronous until successful should retry on the original message

  • MULE-8769 Loggers memory leak after fixing * MULE-8635

  • MULE-8754 Broken link in BUILD.md

  • MULE-8719 Deadlock found when getting operation execution.

  • MULE-8707 Classloader leak using Oracle JDBC Driver

  • MULE-8703 Logger categories are not working properly

  • MULE-8678 HTTP Requestor should not use Host property.

  • MULE-8677 HTTP requestor should ignore 'Transfer-Encoding' property as it is a hop-by-hop header

  • MULE-8676 HTTP listener should ignore 'Transfer-Encoding' property as it is a hop-by-hop header

  • MULE-8626 Connection and Keep-Alive message properties should not affect Listener/Requestor connection reuse behavior.

  • MULE-8484 Succesful undeployment is not show in console

  • MULE-8449 NPE while removing an entry from object store

  • MULE-8342 NPE when Content-Disposition header is absent from multipart-response

  • MULE-8282 401 response received, but no WWW-authenticate header was present

  • MULE-8272 Filename from multipart for to an inbound endpoint is null

  • MULE-8163 Requests randomly fail (1 in 1M) with NPE, even at low conconcurrencies e.g. 50

  • MULE-7975 ScatterGatherRouter looses an exception

  • MULE-7663 tls-default.conf entries are ignored sometimes

  • MULE-7093 EventCorrelation errors under heavy load

  • MULE-6575 There is no way to turn off logging in exception strategy

  • MULE-6417 Divide by zero in ComponentStatistics

  • MULE-6298 Flow with a splitter followed by a filter, returns original collection if no item passes the filter, instead of null message

  • MULE-6279 URI encoded special characters cause some troubles at email transport

  • MULE-6139 SMTP MalformedEndpointException - invalid '@' in user name

  • EE-4740 Batch ignoring ONLY_FAILURE step

  • EE-4732 testingMode doesn’t work for throttling module

  • EE-4712 Exception locking polling lock: OperationTimeoutException

  • EE-4711 In-memory object store not expiring for cache

  • EE-4705 BatchJobInstanceId is not available if the job does not have an input phase

  • EE-4658 Debugger doesn’t stop in breakpoints in processors inside a scatter-gather

  • EE-4650 Debug breakpoint in a dynamically referenced subflow desn’t stop

  • EE-4638 Redeploy error: llegalArgumentException: resource with uniqueName already been registered

  • EE-4637 Object store expires running job instances

  • EE-4634 Authentication error message is not clear

  • EE-4618 All applications undeployed for standalone deployment type

  • EE-3139 Special characters in SFTP outbound endpoint 'path' not allowed

Migration Guide

When migrating from an API Gateway Runtime, follow this migration guide.

  • MULE-9183: Status code for successful one-way operations handled through CXF will be 202 instead of 200

  • MULE-9041: The HTTP Connector will leave the inbound property http.remote.address with the actual remote address. If an X-Forwarded-For header is present, it will be available as an inbound property.

  • MULE-9020: BouncyCastle was upgraded to version 1.50. Notes: DESede algorithm now requires keys of 16 or 24 bytes unlike the prior version which required 16 or 22 bytes. bcmail (Bouncy Castle S/MIME API) dependency was removed. If you need any of its functionalities, you must add the library by yourself."

  • MULE-8963: Exceptions that extend org.mule.api.MessagingException now receive the org.mule.api.processor.MessageProcessor that was executing in the constructor.

  • MULE-8927: The attributes that end in an endpoint URI (for instance: smtp user and passwords) had to be encoded as a workaround for this issue. That workaround now has to be removed. Notes: This also affects the result of MEL expressions (for instance, if an expression evaluated to a username with an @ char, it had to be encoded before using it), so a check has to be done to remove all the additional encoding that was placed for working this around.

  • MULE-8626: The HTTP Connector will now ignore a "Connection" outbound property when responding to a request (listener) or making one (request), instead of transforming it to a header. This means that: if such property is desired, it should be explicitly added as a header using a response/request builder.

  • MULE-8678: The HTTP Connector will now ignore a "Host" outbound property when making a request, instead of transforming it to a header. This means that: if such property is desired, it should be explicitly added as a header using a request builder.

  • MULE-8676: The HTTP Connector will now ignore a "Transfer-Encoding" outbound property when sending a response, instead of transforming it to a header. This means that: if such property is desired, it should be explicitly added as a header using a response builder.

  • MULE-8677: The HTTP Connector will now ignore a "Transfer-Encoding" outbound property when making a request, instead of transforming it to a header. This means that: if such property is desired, it should be explicitly added as a header using a request builder.

  • EE-4637: Batch history expiration is no longer configured through system properties but through the new <batch:history> element

  • MULE-8844: When until-successful throws an exception, it will now be a RetryPolicyExhaustedException wrapping the cause of the exception of the last try, instead of a MessagingException wrapping a RetryPolicyExhaustedException with no link to the actual cause.

  • MULE-9044: The HTTP Listener will now return a 400 instead of a 500 when an invalid Content-Type is sent on a request. Additionally, in both cases a response body will be present.

  • MULE-6298: AbstractMessageSequenceSplitter#process will now return null instead of a VoidMuleEvent. This affects only the scenario where the elements of a split collection are filtered out.

Library Changes

  • MULE-9318 Update joda-time to version 2.9 or newer

Was this article helpful?

πŸ’™ Thanks for your feedback!