List<String> interfaceNames = endpointDescription.getInterfaces();
CollectionMap<Class<?>, ListenerInfo> interfaceToListeners = new CollectionMap<Class<?>, ListenerInfo>();
for (String i : interfaceNames) {
for (Iterator<ListenerInfo> it = snapshot.iterator(); it.hasNext();) {
try {
ListenerInfo listener = it.next();
if (listener.isRemoved()) {
it.remove();
continue;
}
if (!matchedFilter.equals(listener.getFilter())) {
continue;
}
try {
// The classloading can be synchronzed against the serviceListeners
Class<?> interfaceClass = listener.getBundleContext().getBundle().loadClass(i);
interfaceToListeners.putValue(interfaceClass, listener);
} catch (IllegalStateException e) {
logger.log(Level.WARNING, e.getMessage(), e);
// Ignore the exception
}