View | Details | Raw Unified | Return to bug 46384
Collapse All | Expand All

(-)container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java (-6 / +8 lines)
Lines 265-287 Link Here
265
            McastMember m = McastMember.getMember(data);
265
            McastMember m = McastMember.getMember(data);
266
            if(log.isDebugEnabled())
266
            if(log.isDebugEnabled())
267
                log.debug("Mcast receive ping from member " + m);
267
                log.debug("Mcast receive ping from member " + m);
268
            if ( membership.memberAlive(m) ) {
268
            synchronized (membershipMutex) {
269
                if(log.isDebugEnabled())
269
                if ( membership.memberAlive(m) ) {
270
                    log.debug("Mcast add member " + m);
270
                    if(log.isDebugEnabled())
271
                service.memberAdded(m);
271
                        log.debug("Mcast add member " + m);
272
                    service.memberAdded(m);
273
                }
272
            }
274
            }
273
        } finally {
275
        } finally {
274
            checkExpire();
276
            checkExpire();
275
        }
277
        }
276
    }
278
    }
277
279
278
    protected Object expiredMutex = new Object();
280
    protected final Object membershipMutex = new Object();
279
281
280
    /**
282
    /**
281
     * check member expire or alive
283
     * check member expire or alive
282
     */
284
     */
283
    protected void checkExpire() {
285
    protected void checkExpire() {
284
        synchronized (expiredMutex) {
286
        synchronized (membershipMutex) {
285
            McastMember[] expired = membership.expire(timeToExpiration);
287
            McastMember[] expired = membership.expire(timeToExpiration);
286
            for ( int i=0; i<expired.length; i++) {
288
            for ( int i=0; i<expired.length; i++) {
287
                if(log.isDebugEnabled())
289
                if(log.isDebugEnabled())

Return to bug 46384