code: public final void wakeUpMessageListener()
      {
      	try
      	{
  	    	while (!closed)
  	    	{
  		    	synchronized (session.deliveryLock) // [JMS spec]
  				{
  		    		AbstractMessage message = receiveFromDestination(0,true);
  		    		if (message == null)
  		    			break;
  		    		
  		    		// Make sure the message is properly deserialized
  		    		message.ensureDeserializationLevel(MessageSerializationLevel.FULL);
  		    		
  		    		// Make sure the message's session is set
  		            message.setSession(session);
  		            
  		            // Call the message listener
  		            boolean listenerFailed = false;
  	                try
  	                {
  	                    messageListener.onMessage(message);
  	                }
  	                catch (Throwable e)
  	                {
  	                	listenerFailed = true;
  	                	if (shouldLogListenersFailures())
  	                	    log.error("Message listener failed",e);
  	                }
  	                
  		            // Auto acknowledge message
  		            if (autoAcknowledge)
  		            {
  		            	if (listenerFailed)
  		            		session.recover();
  		            	else
  		            		session.acknowledge();
  		            }
  	    		}
  	    	}
      	}
      	catch (JMSException e)
      	{
      		ErrorTools.log(e, log);
      	}
      }
docs: Wake up the consumer message listener