Fix flaky google http client async test (#7805)
https://ge.opentelemetry.io/s/gnwekqhhf3ut6/tests/:instrumentation:google-http-client-1.19:javaagent:test/io.opentelemetry.javaagent.instrumentation.googlehttpclient.GoogleHttpClientAsyncTest/highConcurrency()?page=eyJvdXRwdXQiOnsiMCI6Mn19&top-execution=1 The problem is that the google http client method we use is implemented like ``` public Future<HttpResponse> executeAsync() { return executeAsync(Executors.newSingleThreadExecutor()); } ``` as explained in https://bugs.openjdk.org/browse/JDK-8145304 when `newSingleThreadExecutor` is used in such a way it is possible that this executor is shut down before it actually manages to execute anything.
This commit is contained in:
parent
bbb6482979
commit
dde140c161
|
@ -7,11 +7,21 @@ package io.opentelemetry.javaagent.instrumentation.googlehttpclient;
|
|||
|
||||
import com.google.api.client.http.HttpRequest;
|
||||
import com.google.api.client.http.HttpResponse;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
|
||||
class GoogleHttpClientAsyncTest extends AbstractGoogleHttpClientTest {
|
||||
|
||||
private final ExecutorService executor = Executors.newFixedThreadPool(4);
|
||||
|
||||
@AfterAll
|
||||
void tearDown() {
|
||||
executor.shutdown();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected HttpResponse sendRequest(HttpRequest request) throws Exception {
|
||||
return request.executeAsync().get();
|
||||
return request.executeAsync(executor).get();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue