I'm migrating my mule project from version 3.6 to 3.7. In version 3.6 I was able to use invoker calling a method passing payload as an argument.
Now in version 3.7 if I do that I get NullPointerException
, when payload is null
, in class InvokerMessageProcessor
, line 272, when the following test is executed:
if (!(type.isAssignableFrom(arg.getClass())))
Because when payload is null
arg
is null
.
Is this a bug?
In fact, there was a change in the way Mule treats emptiness and
null
values from Mule 3.6+ to 3.7+, This is the way the validations used to be in Mule 3.6.x for different kind of processors and components:Payload == null
: falsePayload is NullPayload
: truePayload is org.mule.transport.NullPayload
: truePayload instanceof org.mule.transport.NullPayload
: trueGroovy:
Payload == null
: falseNow, in Mule 3.7.x:
MEL:
Payload == null
: truePayload is NullPayload
: falsePayload is org.mule.transport.NullPayload
: falsePayload instanceof org.mule.transport.NullPayload
: truePayload == null
: false