question: protected void addPendingJoin ( InternalDistributedMember id ) { synchronized ( this . pendingJoinsLock ) { List oldPendingJoins = this . pendingJoins ; if ( ! oldPendingJoins . contains ( id ) ) { List newPendingJoins = new ArrayList ( oldPendingJoins ) ; newPendingJoins . add ( id ) ; this . pendingJoins = newPendingJoins ; } } }
target:  Adds a pending join entry. Note: attempting to reuse the same ArrayList instance results in some interesting deadlocks.