Maybe not the most logical client code, but it happened here and I guess it will happen somewhere again:
TemporaryQueue reply = session.createTemporaryQueue();
MessageConsumer consumer = session.createConsumer(reply);
Message received = consumer.receive(timeout);
I've removed try/finally blocks to keep it simple.
See the attached source code.
It works fine, but set
and the slave will not be cleaned up properly.
It means that the number of threads is increasing and at some time it will get an OutOfMemoryError (see
AMQ-1849) and the slave dies.