code: @Override
  	public final Message receive(long timeout) throws JMSException
      {
          if (messageListener != null)
              throw new FFMQException("Cannot receive messages while a listener is active","INVALID_OPERATION"); 
          
          AbstractMessage message = receiveFromDestination(timeout,true);
          if (message != null)
          {
          	message.ensureDeserializationLevel(MessageSerializationLevel.FULL);
          	
              message.setSession(session);
              
              // Auto acknowledge message
              if (autoAcknowledge)
                  session.acknowledge();
          }
          return message;
      }
docs: /*
  (non-Javadoc)
  @see javax.jms.MessageConsumer#receive(long)