4 Replies Latest reply on Aug 19, 2009 6:08 AM by Simon Temple

    JBM2 Beta4 with JBAS5.1 - setListener( null )

    Simon Temple Newbie

      Using the JMS API. If I attempt to clear the currently registered listener on a QueueReceiver then I get an IllegalStateException when I try to receive on it:

      javax.jms.IllegalStateException: Cannot call receive(...) - a MessageHandler is set
       at org.jboss.messaging.core.client.impl.ClientConsumerImpl.receive(ClientConsumerImpl.java:161)
       at org.jboss.messaging.jms.client.JBossMessageConsumer.getMessage(JBossMessageConsumer.java:213)
       at org.jboss.messaging.jms.client.JBossMessageConsumer.receiveNoWait(JBossMessageConsumer.java:146)

      I have a simple test case which looks this:

      queueReceiver.setMessageListener( listener );
       queueConnection.start( );
       thread.wait( 30000 );
       queueReceiver.setMessageListener( null );
       queueReceiver.receiveNoWait( );

      How can I clear the message listener attribute from a QueueReceiver once it's been set?