Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.18, 0.22, 0.32, qpid-java-6.0
-
None
Description
If a JMS user continually closes consumers on the same transactional session, a memory leak occurs at the following location. The leak remains until the Session is closed (Session#close()) or the session is rolled-back. (Session#rollback()).
AMQSession.deregisterConsumer() contains the following code:
if (_transacted)
{
_removedConsumers.add(consumer);
}
However, the _removedConsumers list is only cleaned up on rollback and nowhere else.
This leak appears to be longstanding. It looks like it was added at M3 (QPID-832).