Buggy code:
public class ClusterTopologyManagerImpl implements ClusterTopologyManager { private static final Log log = LogFactory . getLog ( ClusterTopologyManagerImpl . class ) ; private Transport transport ; private GlobalConfiguration globalConfiguration ; private GlobalComponentRegistry gcr ; private CacheManagerNotifier cacheManagerNotifier ; private EmbeddedCacheManager cacheManager ; private ExecutorService asyncTransportExecutor ; private volatile boolean isCoordinator ; private volatile boolean isShuttingDown ; private boolean mustRecoverClusterStatus ; private final Object viewHandlingLock = new Object ( ) ; private volatile int viewId = - 1 ; private final Object viewUpdateLock = new Object ( ) ; private final ConcurrentMap < String , ClusterCacheStatus > cacheStatusMap = CollectionFactory . makeConcurrentMap ( ) ; private ClusterTopologyManagerImpl . ClusterViewListener viewListener ; private volatile boolean isRebalancingEnabled = true ; @ Inject public void inject ( Transport transport , @ ComponentName ( ASYNC_TRANSPORT_EXECUTOR ) ExecutorService asyncTransportExecutor , GlobalConfiguration globalConfiguration , GlobalComponentRegistry gcr , CacheManagerNotifier cacheManagerNotifier , EmbeddedCacheManager cacheManager ) { } @ Start ( priority = 100 ) public void start ( ) { isShuttingDown = false ; isCoordinator = transport . isCoordinator ( ) ; viewListener = new ClusterTopologyManagerImpl . ClusterViewListener ( ) ; cacheManagerNotifier . addListener ( viewListener ) ; handleClusterView ( false , transport . getViewId ( ) ) ; if ( ! ( isCoordinator ) ) { ReplicableCommand command = new CacheTopologyControlCommand ( null , Type . POLICY_GET_STATUS , transport . getAddress ( ) , transport . getViewId ( ) ) ; Address coordinator = transport . getCoordinator ( ) ; Map < Address , Response > responseMap = null ; try { <START_BUG> responseMap = transport . invokeRemotely ( Collections . singleton ( coordinator ) , command , SYNCHRONOUS , getGlobalTimeout ( ) , true , null , false , false ) ; <END_BUG> Response response = responseMap . get ( coordinator ) ; if ( response instanceof SuccessfulResponse ) { isRebalancingEnabled = ( ( Boolean ) ( ( ( SuccessfulResponse ) ( response ) ) . getResponseValue ( ) ) ) ; } else { ClusterTopologyManagerImpl . log . errorReadingRebalancingStatus ( transport . getCoordinator ( ) , null ) ; } } catch ( Exception e ) { ClusterTopologyManagerImpl . log . errorReadingRebalancingStatus ( transport . getCoordinator ( ) , e ) ; } } } @ Stop ( priority = 100 ) public void stop ( ) { } @ Override public CacheStatusResponse handleJoin ( String cacheName , Address joiner , CacheJoinInfo joinInfo , int viewId ) throws Exception { } @ Override public void handleLeave ( String cacheName , Address leaver , int viewId ) throws Exception { } @ Override public void handleRebalanceCompleted ( String cacheName , Address node , int topologyId , Throwable throwable , int viewId ) throws Exception { } private static class CacheTopologyFilterReuser implements ResponseFilter { Map < CacheTopology , CacheTopology > seenTopologies = new HashMap < > ( ) ; Map < CacheJoinInfo , CacheJoinInfo > seenInfos = new HashMap < > ( ) ; @ Override public boolean isAcceptable ( Response response , Address sender ) { } @ Override public boolean needMoreResponses ( ) { } } @ Override public void handleClusterView ( boolean mergeView , int newViewId ) { } private ClusterCacheStatus initCacheStatusIfAbsent ( String cacheName ) { } @ Override public void broadcastRebalanceStart ( String cacheName , CacheTopology cacheTopology , boolean totalOrder , boolean distributed ) { } private void recoverClusterStatus ( int newViewId , boolean isMergeView , List < Address > clusterMembers ) throws Exception { } public void updateCacheMembers ( List < Address > newClusterMembers ) throws Exception { } private void confirmMembersAvailable ( ) throws Exception { } private void waitForView ( int viewId ) throws InterruptedException { } private Map < Address , Object > executeOnClusterSync ( final ReplicableCommand command , final int timeout , boolean totalOrder , boolean distributed ) throws Exception { } private Map < Address , Object > executeOnClusterSync ( final ReplicableCommand command , final int timeout , boolean totalOrder , boolean distributed , final ResponseFilter filter ) throws Exception { } private int getGlobalTimeout ( ) { } public void executeOnClusterAsync ( final ReplicableCommand command , final int timeout , boolean totalOrder , boolean distributed ) { } @ Override public void broadcastTopologyUpdate ( String cacheName , CacheTopology cacheTopology , AvailabilityMode availabilityMode , boolean totalOrder , boolean distributed ) { } @ Override public void broadcastStableTopologyUpdate ( String cacheName , CacheTopology cacheTopology , boolean totalOrder , boolean distributed ) { } @ Override public boolean isRebalancingEnabled ( ) { } @ Override public void setRebalancingEnabled ( boolean enabled ) { } @ Override public void forceRebalance ( String cacheName ) { } @ Override public void forceAvailabilityMode ( String cacheName , AvailabilityMode availabilityMode ) { } @ Listener ( sync = true ) public class ClusterViewListener { @ SuppressWarnings ( "unused" ) @ Merged @ ViewChanged public void handleViewChange ( final ViewChangedEvent e ) { } } }

Fix:
responseMap = transport . invokeRemotely ( Collections . singleton ( coordinator ) , command , SYNCHRONOUS , getGlobalTimeout ( ) , null , NONE , false ) ;