Вместо того, чтобы проверять кодирование в поисках стандартных шаблонов утечек, лучше всего включить ведение журнала GC, а затем запустить такой инструмент, как HP Jmeter, для этих журналов.
Инструкции по использованию JMeter можно найти здесь: http://www.javaperformancetuning.com/tools/hpjmeter/index.shtml#howto
Один общий шаблон, который нужно искать при анализе журналов ГХ, - это объект, который живет в нескольких поколениях.В обычной (непротекающей) java-программе вы обнаружите, что объекты являются либо недолговечными, либо долгоживущими, что означает, что они создаются и уничтожаются быстро или существуют в течение всего времени работы приложения.Если объект недолговечный, он будет существовать только в течение небольшого стабильного числа поколений.Если объект долгоживущий, его возраст будет увеличиваться при запуске программы.Но это будет принадлежать только ограниченному числу поколений.Если вы найдете объект, имеющий несколько экземпляров с разным возрастом и возрастанием количества поколений, то, скорее всего, объект просочился.Для более подробного объяснения взгляните на эту презентацию: http://www.hjug.org/present/Sporar-MemoryLeaks.pdf
После того, как вы определили свой негерметичный объект, следующим шагом будет анализ кучи, чтобы увидеть, кто содержит ссылки на просочившийся объект.Оттуда проблема должна быть действительно легко идентифицируемой