public Set addMembershipListenerAndAdviseGeneric(MembershipListener listener){
  initializationGate();
  membershipListeners.putIfAbsent(listener,Boolean.TRUE);
  return adviseGeneric();
}

public Set addMembershipListenerAndAdviseGeneric ( MembershipListener listener ) { initializationGate ( ) ; membershipListeners . putIfAbsent ( listener , Boolean . TRUE ) ; return adviseGeneric ( ) ; }
atomically add listener to the list to receive notification when a * new * profile is added or a profile is removed , and return advisegeneric ( ) . this ensures that no membership listener calls are missed , but there is no guarantee that there won ' t be redundant listener calls .
