Я отлаживаю OOM с помощью инструмента Eclipse MAT. В дереве подозрительных объектов и знаменателя утечки инструмента MAT я мог видеть один экземпляр Finalizer, занимающий кучу 63% -
Class Name | Shallow Heap | Retained Heap | Percentage
------------------------------------------------------------------------------------------------------
class java.lang.ref.Finalizer @ 0x6d4efab48 System Class | 16 | 729,335,536 | 63.07%
com.vfold.vdi.desktoptracker.DesktopTracker @ 0x6d7b157f8| 112 | 77,148,712 | 6.67%
org.apache.cxf.jaxws.JaxWsClientProxy @ 0x6c4af8830 | 32 | 34,559,544 | 2.99%
com.vfold.vdi.tracker.TrackerManager @ 0x6d7ab0938 | 144 | 30,941,920 | 2.68%
org.apache.cxf.jaxws.JaxWsClientProxy @ 0x6fe469c88 | 32 | 23,754,824 | 2.05%
org.apache.cxf.jaxws.JaxWsClientProxy @ 0x6ea58a038 | 32 | 23,754,088 | 2.05%
------------------------------------------------------------------------------------------------------
Я знаю, как работает финализация, но не в состоянии обнаружить, на каких объектах эти объекты финализаторы вызывают. Когда я нажимал на список объектов финализатора, я мог видеть шаблон как прикрепленный. Означает ли это, что финализаторы вызываются в классе com.sun.jndi.ldap.LdapSearchEnumeration? Или я не на том пути? Кроме того, заглянул в исходный код LdapSearchEnumeration и не смог найти какой-либо метод finalize. Любые советы о том, как определить, на какие объекты были вызваны эти финализаторы? снимок экрана с выводом Eclipse MAT