### Question:
ApmServerClient { public void start() { start(shuffleUrls(reporterConfiguration.getServerUrls())); } ApmServerClient(ReporterConfiguration reporterConfiguration); void start(); void start(List<URL> shuffledUrls); @Nullable V execute(String path, ConnectionHandler<V> connectionHandler); List<T> executeForAllUrls(String path, ConnectionHandler<T> connectionHandler); boolean supportsNonStringLabels(); boolean supportsLogsEndpoint(); boolean isAtLeast(Version apmServerVersion);  }### Answer:
@Test public void testDroppingAndRecyclingEventsWithEmptyUrls() { Reporter reporter = tracer.getReporter(); long droppedStart = reporter.getDropped(); apmServerClient.start(Lists.emptyList()); BookkeeperObjectPool<Transaction> transactionPool = objectPoolFactory.getTransactionPool(); int transactionsRequestedBefore = transactionPool.getRequestedObjectCount(); final Transaction transaction = tracer.startRootTransaction(getClass().getClassLoader()); assertThat(transactionPool.getRequestedObjectCount()).isEqualTo(transactionsRequestedBefore + 1); int transactionsInPoolAfterCreation = transactionPool.getObjectsInPool(); BookkeeperObjectPool<Span> spanPool = objectPoolFactory.getSpanPool(); int spansRequestedBefore = spanPool.getRequestedObjectCount(); final Span span = Objects.requireNonNull(transaction).createSpan(); assertThat(transactionPool.getRequestedObjectCount()).isEqualTo(spansRequestedBefore + 1); int spansInPoolAfterCreation = spanPool.getObjectsInPool(); BookkeeperObjectPool<ErrorCapture> errorPool = objectPoolFactory.getErrorPool(); int errorsRequestedBefore = errorPool.getRequestedObjectCount(); span.captureException(new Throwable()); assertThat(errorPool.getRequestedObjectCount()).isEqualTo(errorsRequestedBefore + 1); int errorsInPoolAfterCreation = errorPool.getObjectsInPool(); span.end(); transaction.end(); awaitUpToOneSecond().untilAsserted( () -> assertThat(transactionPool.getObjectsInPool()).isEqualTo(transactionsInPoolAfterCreation + 1) ); assertThat(spanPool.getObjectsInPool()).isEqualTo(spansInPoolAfterCreation + 1); assertThat(errorPool.getObjectsInPool()).isEqualTo(errorsInPoolAfterCreation + 1); assertThat(reporter.getDropped()).isEqualTo(droppedStart + 3); }