我正在将我的mule项目从3.6版迁移到3.7版。在版本3.6中,我能够使用调用者调用将有效负载作为参数传递的方法。
现在在版本3.7中如果我这样做,当有效负载为NullPointerException
时,在null
类,第272行,当执行以下测试时,我得到InvokerMessageProcessor
:
if (!(type.isAssignableFrom(arg.getClass())))
因为有效负载为null
arg
为null
。
这是一个错误吗?
答案 0 :(得分:1)
事实上,Mule将Mule 3.6+中的空虚和null
值处理为3.7+的方式发生了变化。这是验证过去的方式 Mule 3.6.x 适用于不同类型的处理器和组件:
Payload == null
:false Payload is NullPayload
:true Payload is org.mule.transport.NullPayload
:true Payload instanceof org.mule.transport.NullPayload
:true Groovy:Payload == null
:false
现在,在 Mule 3.7.x :
MEL:Payload == null
:true
Payload is NullPayload
:false Payload is org.mule.transport.NullPayload
:false Payload instanceof org.mule.transport.NullPayload
:true Payload == null
:false