/** * Removes a specific <tt>Endpoint</tt> instance from this list of <tt>Endpoint</tt>s * participating in this multipoint conference. * * @param endpoint the <tt>Endpoint</tt> to remove * @return <tt>true</tt> if the list of <tt>Endpoint</tt>s participating in this multipoint * conference changed as a result of the execution of the method; otherwise, <tt>false</tt> */ private boolean removeEndpoint(Endpoint endpoint) { boolean removed = false; synchronized (endpoints) { for (Iterator<WeakReference<Endpoint>> i = endpoints.iterator(); i.hasNext(); ) { Endpoint e = i.next().get(); if (e == null || e == endpoint) { i.remove(); removed = true; } } if (endpoint != null) { endpoint.expire(); } } if (removed) firePropertyChange(ENDPOINTS_PROPERTY_NAME, null, null); return removed; }