Buggy code:
private GMSJoinLeave . TcpClientWrapper tcpClientWrapper = new GMSJoinLeave . TcpClientWrapper ( ) ; void setTcpClientWrapper ( GMSJoinLeave . TcpClientWrapper tcpClientWrapper ) { } private boolean findCoordinator ( ) { } protected class TcpClientWrapper { protected Object sendCoordinatorFindRequest ( InetSocketAddress addr , FindCoordinatorRequest request , int connectTimeout ) throws IOException , ClassNotFoundException { } } @ SuppressWarnings ( "WA_NOT_IN_LOOP" ) boolean findCoordinatorFromView ( ) { } private void inheritSettingsFromLocator ( InetSocketAddress addr , FindCoordinatorResponse response ) { } private void processJoinResponse ( JoinResponseMessage rsp ) { } JoinResponseMessage [ ] getJoinResponseMessage ( ) { } void setJoinResponseMessage ( JoinResponseMessage jrm ) { } private void processFindCoordinatorRequest ( FindCoordinatorRequest req ) { } private void processFindCoordinatorResponse ( FindCoordinatorResponse resp ) { } private void processNetworkPartitionMessage ( NetworkPartitionMessage msg ) { } @ Override public NetView getView ( ) { } public NetView getPreviousView ( ) { } @ Override public InternalDistributedMember getMemberID ( ) { } public void installView ( NetView newView ) { } private void removeMembersFromCollectionIfNotInView ( Collection < InternalDistributedMember > members , NetView currentView ) { } void sendNetworkPartitionMessage ( NetView view ) { } public boolean isCoordinator ( ) { } public boolean isStopping ( ) { } public NetView getPreparedView ( ) { } private boolean isNetworkPartition ( NetView newView , boolean logWeights ) { } private void stopCoordinatorServices ( ) { } private void startViewBroadcaster ( ) { } public static void loadEmergencyClasses ( ) { } @ Override public void emergencyClose ( ) { } public void beSick ( ) { } public void playDead ( ) { } public void beHealthy ( ) { } @ Override public void start ( ) { } @ Override public void started ( ) { } @ Override public void stop ( ) { } @ Override public void stopped ( ) { } @ Override public void memberSuspected ( InternalDistributedMember initiator , InternalDistributedMember suspect , String reason ) { } @ Override public void leave ( ) { } @ Override public void remove ( InternalDistributedMember m , String reason ) { } @ Override public void memberShutdown ( DistributedMember mbr , String reason ) { } @ Override public void disableDisconnectOnQuorumLossForTesting ( ) { } @ Override public void init ( Services s ) { } @ Override public void processMessage ( DistributionMessage m ) { } Set < InternalDistributedMember > getPendingRequestIDs ( int theDSFID ) { } protected GMSJoinLeave . ViewReplyProcessor getPrepareViewReplyProcessor ( ) { } protected boolean testPrepareProcessorWaiting ( ) { } class ViewReplyProcessor { volatile int viewId = - 1 ; final Set < InternalDistributedMember > notRepliedYet = new HashSet < > ( ) ; NetView conflictingView ; InternalDistributedMember conflictingViewSender ; volatile boolean waiting ; final boolean isPrepareViewProcessor ; final Set < InternalDistributedMember > pendingRemovals = new HashSet < > ( ) ; ViewReplyProcessor ( boolean forPreparation ) { } synchronized void initialize ( int viewId , Set < InternalDistributedMember > recips ) { } boolean isWaiting ( ) { } synchronized void processPendingRequests ( Set < InternalDistributedMember > pendingLeaves , Set < InternalDistributedMember > pendingRemovals ) { } synchronized void memberSuspected ( InternalDistributedMember initiator , InternalDistributedMember suspect ) { } synchronized void processLeaveRequest ( InternalDistributedMember mbr ) { } synchronized void processRemoveRequest ( InternalDistributedMember mbr ) { } synchronized void processViewResponse ( int viewId , InternalDistributedMember sender , NetView conflictingView ) { } private void stopWaitingFor ( InternalDistributedMember mbr ) { } private void checkIfDone ( ) { } Set < InternalDistributedMember > waitForResponses ( ) { } NetView getConflictingView ( ) { } InternalDistributedMember getConflictingViewSender ( ) { } Set < InternalDistributedMember > getUnresponsiveMembers ( ) { } } class ViewBroadcaster extends TimerTask { @ Override public void run ( ) { } void sendCurrentView ( ) { NetView v = currentView ; if ( v != null ) { <START_BUG> InstallViewMessage msg = new InstallViewMessage ( v , services . getAuthenticator ( ) . getCredentials ( localAddress ) ) ; <END_BUG> Collection < InternalDistributedMember > recips = new java . util . ArrayList ( ( ( v . size ( ) ) + ( v . getCrashedMembers ( ) . size ( ) ) ) ) ; recips . addAll ( v . getMembers ( ) ) ; recips . remove ( localAddress ) ; recips . addAll ( v . getCrashedMembers ( ) ) ; msg . setRecipients ( recips ) ; services . getMessenger ( ) . sendUnreliably ( msg ) ; } } } class ViewCreator extends Thread { boolean shutdown = false ; volatile boolean waiting = false ; volatile boolean testFlagForRemovalRequest = false ; NetView initialView ; List < InternalDistributedMember > initialJoins = Collections . < InternalDistributedMember > emptyList ( ) ; Set < InternalDistributedMember > initialLeaving ; Set < InternalDistributedMember > initialRemovals ; ViewCreator ( String name , ThreadGroup tg ) { } void shutdown ( ) { } boolean isShutdown ( ) { } boolean isWaiting ( ) { } synchronized void setInitialView ( NetView newView , List < InternalDistributedMember > newMembers , Set < InternalDistributedMember > leaving , Set < InternalDistributedMember > removals ) { } private void sendInitialView ( ) { } private void processPreparedView ( NetView v ) { } @ Override public void run ( ) { } void createAndSendView ( List < DistributionMessage > requests ) { } void prepareAndSendView ( NetView newView , List < InternalDistributedMember > joinReqs , Set < InternalDistributedMember > leaveReqs , Set < InternalDistributedMember > removalReqs ) { } private void removeHealthyMembers ( final Set < InternalDistributedMember > suspects ) throws InterruptedException { } protected void filterMembers ( Collection < InternalDistributedMember > mbrs , Set < InternalDistributedMember > matchingMembers , short requestType ) { } private < T > List < Future < T > > submitAll ( ExecutorService executor , Collection < ? extends Callable < T > > tasks ) { } boolean getTestFlageForRemovalRequest ( ) { } } boolean checkIfAvailable ( InternalDistributedMember fmbr ) { } }

Fix:
InstallViewMessage msg = new InstallViewMessage ( v , services . getAuthenticator ( ) . getCredentials ( localAddress ) , false ) ;