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!


Reply via email to