private static TransportClient open( final ElasticsearchReporter reporter, final Settings settings, final Iterable<TransportAddress> addresses) { assert settings != null; reporter.logNotice(format("opening shared client for %s", identify(settings))); try { TransportClient client = new TransportClient(settings); client.addTransportAddresses(toArray(addresses, TransportAddress.class)); reporter.logNotice( format( "shared client for %s opened -> %s", identify(settings), toDefaultString(client))); return client; } catch (Exception failure) { reporter.logError( format("unable to open shared client for %s", identify(settings)), failure); throw failure; } }