OMemoryWatchDog listeners compared by identity, System.gc() always called for resource cleanup