/*
* when this mehtod is called, it is assumed that we have exclusive access
* to the session.
*/
public Message receive(long timeout){
Message m;
session.messageFlow(destination,Session.MESSAGE_FLOW_UNIT_MESSAGE, 1);
session.messageFlow(destination,Session.MESSAGE_FLOW_UNIT_BYTE, 0xFFFFFFFF);
try{
m = queue.poll(timeout, TimeUnit.MILLISECONDS);
}catch(Exception e){