protected GossipInfoResponse getGossipInfo()

in cassandra-analytics-core/src/main/java/org/apache/cassandra/spark/bulkwriter/CassandraClusterInfo.java [421:451]


    protected GossipInfoResponse getGossipInfo(boolean forceRefresh)
    {
        GossipInfoResponse currentGossipInfo = gossipInfo;
        if (!forceRefresh && currentGossipInfo != null)
        {
            return currentGossipInfo;
        }

        synchronized (this)
        {
            if (forceRefresh || gossipInfo == null)
            {
                try
                {
                    gossipInfo = cassandraContext.getSidecarClient().gossipInfo().get(conf.getHttpResponseTimeoutMs(),
                                                                                      TimeUnit.MILLISECONDS);
                }
                catch (ExecutionException | InterruptedException exception)
                {
                    LOGGER.error("Failed to retrieve gossip information");
                    throw new RuntimeException("Failed to retrieve gossip information", exception);
                }
                catch (TimeoutException exception)
                {
                    Thread.currentThread().interrupt();
                    throw new RuntimeException("Failed to retrieve gossip information", exception);
                }
            }
            return gossipInfo;
        }
    }