У вас может быть утечка, вызванная сохранением ссылок на объекты после истечения срока их полезного использования.
Я предлагаю вам получить профиль и использовать его для расследования.Хорошее и бесплатное начало - это программа VisualVM, которая распространяется на Java 6.
Профилировщик - это отдельная программа, которая либо подключается к JVM, либо размещает JVM для вашей программы и контролирует выполнение вашей программы.Он может отслеживать распределение объектов и выполнение кода либо статистически, либо путем «инструментирования» исполняемого кода.Он покажет вам, если объекты размещены и не освобождены, и может показать, какие они объекты и где они были размещены (среди многих других полезных вещей).
Я использую jProfiler, который является коммерческим (но стоит того,это для профессионала).В прошлый раз, когда я искал, было несколько профилей хорошего качества, доступных бесплатно (по крайней мере, для личного использования).VisualVM имеет базовые, но полезные возможности для профилирования, и я бы начал с этого (в Windows вы можете найти его в каталоге bin JDK; я полагаю, что то же самое верно для Linux и Mac).