ArrayList list = (ArrayList) listenerMap.get(mbean);
if (list == null) {
return (new String[0]);
}
ListenerInfo info1 = new ListenerInfo();
info1.listener = listener;
info1.filter = filter;
info1.handback = handback;
info1.id = info1.computeId();
Iterator itr = list.iterator();
// Because updating the list when we are iterating the list throws an exception,
// unless we return immediately
ArrayList list1 = (ArrayList) list.clone();
while (itr.hasNext()) {
ListenerInfo info = (ListenerInfo) itr.next();
if (!listenerOnly && info.id.equals(info1.id)) {
list1.remove(list1.indexOf(info));
idlist.add(info.id);
} else if (listenerOnly && info.listener == listener) {
list1.remove(list1.indexOf(info));