* delivered.
*/
protected void receive(final Binary id, final String sQueueName, final String sDispatcherId)
{
Channel candidateChannel = m_metadata.findChannel(sQueueName);
final ObjectQueue channel = (candidateChannel instanceof ObjectQueue) ? (ObjectQueue)candidateChannel : null;
final OID oid = OID.fromBinary(id);
run(new ContextRunnable()
{
public void run(InvocationContext context) throws Throwable
{
Instance msg = readMessage(oid, Pair.append(RECEIVE_ATTRIBUTES, m_messageLoadAttributes), context);
if (msg == null)
{
throw new UncheckedException("err.queueing.receive", new Object[]
{
oid
});
}
Metaclass dispatcherClass = m_metadata.getMetaclass("SysObjectQueueDispatcher");
Channel candidateChannel = m_metadata.findChannel(sQueueName);
final ObjectQueue channel = (candidateChannel instanceof ObjectQueue) ? (ObjectQueue)candidateChannel : null;
try
{
receiveRun(context, sQueueName, channel, msg, dispatcherClass, sDispatcherId);
}