У меня есть кеш, который имеет мягкие ссылки на кешированные объекты. Я пытаюсь написать функциональный тест для поведения классов, которые используют кеш специально для того, что происходит, когда кешированные объекты очищаются.
Проблема заключается в следующем: я не могу надежно получить мягкие ссылки для очистки. Просто использование кучи памяти не делает трюк: я получаю OutOfMemory, прежде чем любые мягкие ссылки будут очищены.
Есть ли способ заставить Java более охотно очищать мягкие ссылки?
Найдено здесь:
"Гарантируется, что все SoftReferences будет очищено до OutOfMemoryError бросается, поэтому они теоретически не может вызвать OOME."
Значит ли это, что вышеупомянутый сценарий ДОЛЖЕН означать, что у меня есть утечка памяти где-то с некоторым классом, содержащим жесткую ссылку на мой кешированный объект?