Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Critical
-
Resolution: Fixed
-
Affects Version/s: 2.0.0-M1
-
Fix Version/s: 2.0.0-M1
-
Component/s: Core: Configuration
-
Labels:None
-
User impact:High
-
Similar Issues:None
Description
The ImmutableMuleEndpoint class has the following code:
if (transformer == null) { if (connector instanceof AbstractConnector) { if (UMOEndpoint.ENDPOINT_TYPE_SENDER.equals(type)) { transformer = ((AbstractConnector) connector).getDefaultOutboundTransformer(); } else if (UMOEndpoint.ENDPOINT_TYPE_SENDER_AND_RECEIVER.equals(type)) { transformer = ((AbstractConnector) connector).getDefaultInboundTransformer(); } else { transformer = ((AbstractConnector) connector).getDefaultInboundTransformer(); } } }
When this is called, type is "senderAndReceiver". Always. The value of type is only changed later, when setType is called by the router collection.
I believe this was responsible for some of the problems in MULE-1840 ("I cannot make everything identical to the pre-2.0 behaviour; I believe that it's just not possible given the changes to startup.")
Added lazy init. Better fix postponed to MULE-1956.