src/net/java/sip/communicator/service/protocol/AbstractCallPeer.java
/**
     * Removes a specific <tt>ConferenceMember</tt> from the list of
     * <tt>ConferenceMember</tt>s reported by this peer through
     * {@link #getConferenceMembers()} and {@link #getConferenceMemberCount()}
     * if it is contained and fires
     * <tt>CallPeerConferenceEvent#CONFERENCE_MEMBER_REMOVED</tt> to
     * the currently registered <tt>CallPeerConferenceListener</tt>s.
     *
     * @param conferenceMember a <tt>ConferenceMember</tt> to be removed from
     * the list of <tt>ConferenceMember</tt> reported by this peer. If the
     * specified <tt>ConferenceMember</tt> is no contained in the list, no event
     * is fired.
     */
Removes a specific ConferenceMember from the list of
ConferenceMembers reported by this peer through
#getConferenceMembers() and  #getConferenceMemberCount()
if it is contained and fires
CallPeerConferenceEvent#CONFERENCE_MEMBER_REMOVED to
the currently registered CallPeerConferenceListeners.

@param conferenceMember a ConferenceMember to be removed from
the list of ConferenceMember reported by this peer. If the
specified ConferenceMember is no contained in the list, no event
is fired.
Removes a specific ConferenceMember from the list of ConferenceMembers reported by this peer through #getConferenceMembers () and #getConferenceMemberCount () if it is contained and fires CallPeerConferenceEvent#CONFERENCE_MEMBER_REMOVED to the currently registered CallPeerConferenceListeners . @param conferenceMember a ConferenceMember to be removed from the list of ConferenceMember reported by this peer . If the specified ConferenceMember is no contained in the list no event is fired .
public void removeConferenceMember(ConferenceMember conferenceMember)
    {
        if (conferenceMember != null)
        {
            synchronized (conferenceMembersSyncRoot)
            {
                if (conferenceMembers.contains(conferenceMember))
                {
                    List<ConferenceMember> newConferenceMembers
                        = new ArrayList<ConferenceMember>(conferenceMembers);
                    if (newConferenceMembers.remove(conferenceMember))
                    {
                        conferenceMembers = newConferenceMembers;
                        unmodifiableConferenceMembers
                            = Collections.unmodifiableList(conferenceMembers);
                    }
                    else
                        return;
                }
                else
                    return;
            }
            fireCallPeerConferenceEvent(
                    new CallPeerConferenceEvent(
                            this,
                            CallPeerConferenceEvent.CONFERENCE_MEMBER_REMOVED,
                            conferenceMember));
        }
    }
public void removeConferenceMember ( ConferenceMember conferenceMember ) { if ( conferenceMember != null ) { synchronized ( conferenceMembersSyncRoot ) { if ( conferenceMembers . contains ( conferenceMember ) ) { List < ConferenceMember > newConferenceMembers = new ArrayList < ConferenceMember > ( conferenceMembers ) ; if ( newConferenceMembers . remove ( conferenceMember ) ) { conferenceMembers = newConferenceMembers ; unmodifiableConferenceMembers = Collections . unmodifiableList ( conferenceMembers ) ; } else return ; } else return ; } fireCallPeerConferenceEvent ( new CallPeerConferenceEvent ( this , CallPeerConferenceEvent . CONFERENCE_MEMBER_REMOVED , conferenceMember ) ) ; } }
Removes a specific <tt>ConferenceMember</tt> from the list of
 <tt>ConferenceMember</tt>s reported by this peer through
 {@link #getConferenceMembers()} and {@link #getConferenceMemberCount()}
 if it is contained and fires
 <tt>CallPeerConferenceEvent#CONFERENCE_MEMBER_REMOVED</tt> to
 the currently registered <tt>CallPeerConferenceListener</tt>s.
Removes a specific <tt > ConferenceMember< / tt > from the list of <tt > ConferenceMember< / tt > s reported by this peer through { @link #getConferenceMembers () } and { @link #getConferenceMemberCount () } if it is contained and fires <tt > CallPeerConferenceEvent#CONFERENCE_MEMBER_REMOVED< / tt > to the currently registered <tt > CallPeerConferenceListener< / tt > s .