ObserverGroupListener equals is broken
org.simantics.scenegraph.profile.common.ObserverGroupListener has an equals implementation that does not work in subclasses of ObserverGroupListener. There's probably only one such subclass, but this causes those instances to be left as undisposed listeners in the database query systems, essentially leaking as uncollectable "garbage".
The comparison should be if (getClass() != object.getClass())
instead of if (ObserverGroupListener.class != object.getClass())
.
Every activation/deactivation of a diagram profile entry will cause more of these listeners to be registered and thus leaked.
Edited by Tuukka Lehtonen