I've been looking at the ServiceMix version 1.0 source code.
I have a question. I do not understand the following AckHelper
processing in the DeliveryChannelImpl.processInBound method .
if (ack != null) {
ack.getMessageExchange().setPacket(packet); // WHY
IS THIS REQUIRED
ack.done();
}else {
My understanding (after debugging my simple configuration) is that the
ExchangePacket instance remains the same throughout the entire process
flow. So the packet instance in the ME held by the AckHelper is the same
packet instance that was in that ME when the
DeliveryChannelImpl.sendSync(ME) was done in the first place....
I'm confused. Can somebody shed some light on why this statement is
needed at all?
Thanks!