"simon_temple" wrote : 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?
Thre is a bug in the JBossMessageConsumer which prevents to unset the message listener. We'll fix it. Please not however that even with this bug fixed, your test case may not work. >From MessageConsumer.setMessageListener() javadoc: anonymous wrote : | The effect of calling MessageConsumer.setMessageListener while messages are being consumed by an existing listener or the consumer is being used to consume messages synchronously is undefined. | You should stop your queueConnection to prevent message consumption before unsetting the message listener to have a correct behavior. View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4250322#4250322 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4250322 _______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
