使用null有效负载将Mule 3.6迁移到Mule 3.7 NullPointerException调用方法

时间:2016-03-07 17:48:17

标签: mule mule-el

我正在将我的mule项目从3.6版迁移到3.7版。在版本3.6中,我能够使用调用者调用将有效负载作为参数传递的方法。

现在在版本3.7中如果我这样做,当有效负载为NullPointerException时,在null类,第272行,当执行以下测试时,我得到InvokerMessageProcessor

if (!(type.isAssignableFrom(arg.getClass()))) 

因为有效负载为null argnull

这是一个错误吗?

1 个答案:

答案 0 :(得分:1)

事实上,Mule将Mule 3.6+中的空虚null值处理为3.7+的方式发生了变化。这是验证过去的方式 Mule 3.6.x 适用于不同类型的处理器和组件:

  • MEL(骡子表达语言):Payload == null:false
  • MEL:Payload is NullPayload:true
  • MEL:Payload is org.mule.transport.NullPayload:true
  • Groovy:Payload instanceof org.mule.transport.NullPayload:true
  • Groovy:Payload == null:false

    现在,在 Mule 3.7.x

  • MEL:Payload == null:true

  • MEL:Payload is NullPayload:false
  • MEL:Payload is org.mule.transport.NullPayload:false
  • Groovy:Payload instanceof org.mule.transport.NullPayload:true
  • Groovy:Payload == null:false