Java EventListener using WeakReference