- void notifyEntityOwnershipListeners(Entity entity, boolean wasOwner, boolean isOwner) {
- notifyListeners(entity, entity, wasOwner, isOwner, entityListenerMap);
- notifyListeners(entity, entity.getType(), wasOwner, isOwner, entityTypeListenerMap);
+ void addEntityOwnershipListener(final String entityType, final DOMEntityOwnershipListener listener) {
+ LOG.debug("{}: Adding EntityOwnershipListener {} for entity type {}", logId, listener, entityType);
+
+ listenerLock.writeLock().lock();
+ try {
+ if (entityTypeListenerMap.put(entityType, listener)) {
+ ListenerActorRefEntry listenerEntry = listenerActorMap.get(listener);
+ if (listenerEntry == null) {
+ listenerActorMap.put(listener, new ListenerActorRefEntry(listener));
+ } else {
+ listenerEntry.referenceCount++;
+ }
+ }
+ } finally {
+ listenerLock.writeLock().unlock();
+ }