//Note: removeListener might be called when invoking svc.service()
final Set called = new IdentityHashSet();
l_svc:
for (;;) {
for (Iterator it = _ausvcs.iterator(); ;) {
final AuService svc;
try {
if (!it.hasNext())
break l_svc; //done
svc = (AuService)it.next();
} catch (java.util.ConcurrentModificationException ex) {
break; //loop again
}
if (called.add(svc)
&& svc.service(request, everError))
return; //done
}
}
}
final Component comp = request.getComponent();
if (comp != null) {
final AuService svc = comp.getAuService();
if (svc == null || !svc.service(request, everError))
((ComponentCtrl)comp).service(request, everError);
return; //done (it's comp's job to handle it)
}
final String cmd = request.getCommand();