public final void receive(final MessageContext messageCtx) {
try {
// Create a new message id and hand it to
// JDKInboundInvocationHandler
// via work context
MessageId messageId = new MessageId();
workContext.setCurrentMessageId(messageId);
// Now use message id as index to context to be used by callback
// target invoker
CountDownLatch doneSignal = new CountDownLatch(1);
InvocationContext invCtx =