Как вы проверяете использование памяти? Использование, сообщаемое ОС, только указывает на то, что размер кучи Java увеличился. Вы не можете знать, пуста ли куча, заполнена ли она, но с объектами, подходящими для GC.
Вы должны использовать какой-либо инструмент, связанный с Java (например, VisualVM или jmap). Это даст вам лучшее представление о состоянии памяти кучи. С VisualVM вы можете активировать GC вручную, а затем проверить занятость кучи, чтобы определить, есть ли утечка памяти или нет.