Skimming through the relevant code there is an interrupt call when stopping the dispatcher.

So if you are pulling messages with receive() and stop the dispatcher (e.g. close the session) before processing the messages this would seem likely to happen. I think shutdown should probably be handled more cleanly, interrupt is a horrible way to do that (or at the very least the interruption should be anticipated).

Btw, the code I'm looking at is not quite the same as yours based on the line numbers in the stack trace. I *think* I have the latest...

Martin Ritchie wrote:
Hello all,

I've been getting the following error ever so often whilst running the IBM performance tests on the client. I'm not sure what is causing it so I'm throwing out here to those of you that might no know more about it.


Dispatcher-Channel-1 2006-09-14 10:32:43,337 ERROR [apache.qpid.client.BasicMessageConsumer] Caught exception (dump follows) - ignoring...
java.lang.InterruptedException
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireInterruptibly(AbstractQueuedSynchronizer.java:746) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireInterruptibly(AbstractQueuedSynchronizer.java:1064) at java.util.concurrent.SynchronousQueue$Node.waitForTake(SynchronousQueue.java:254) at java.util.concurrent.SynchronousQueue.put(SynchronousQueue.java:326) at org.apache.qpid.client.BasicMessageConsumer.notifyMessage(BasicMessageConsumer.java:410) at org.apache.qpid.client.AMQSession$Dispatcher.dispatchMessage(AMQSession.java:152) at org.apache.qpid.client.AMQSession$Dispatcher.run(AMQSession.java:129)

If you have the IBM jar on your path this is pretty much what I'm running if you want to recreate it:

java JMSPerfHarness -pc JNDI -ii com.sun.jndi.fscontext.RefFSContextFactory -iu file:/C:/temp/IBMPerfTestsJNDI/ -cf amq/ConnectionFactory -d amq/Queue -tc jms.r11.PutGet -nt 1

Any insights are welcome.

Reply via email to