+ LOG.warn("Listener {} threw an uncaught exception during processing notification {}",
+ domNotificationListener, notification, e);
+ }
}
}
@Override
}
}
@Override
- public synchronized <T extends DOMNotificationListener> ListenerRegistration<T> registerNotificationListener(@Nonnull final T listener, @Nonnull final Collection<SchemaPath> types) {
+ public synchronized <T extends DOMNotificationListener> ListenerRegistration<T> registerNotificationListener(
+ @Nonnull final T listener, @Nonnull final Collection<SchemaPath> types) {
for (final SchemaPath type : types) {
listeners.put(type, listener);
}
for (final SchemaPath type : types) {
listeners.put(type, listener);
}
- return new ListenerRegistration<T>() {
+ return new AbstractListenerRegistration<T>(listener) {
@Override
@Override
- public void close() {
+ protected void removeRegistration() {
for (final SchemaPath type : types) {
listeners.remove(type, listener);
}
}
for (final SchemaPath type : types) {
listeners.remove(type, listener);
}
}
-
- @Override
- public T getInstance() {
- return listener;
- }
};
}
@Override
};
}
@Override
- public synchronized <T extends DOMNotificationListener> ListenerRegistration<T> registerNotificationListener(@Nonnull final T listener, final SchemaPath... types) {
+ public synchronized <T extends DOMNotificationListener> ListenerRegistration<T> registerNotificationListener(
+ @Nonnull final T listener, final SchemaPath... types) {