googleapis / googleapis/google-cloud-java

[sdk-platform-java] com.google.api.gax.httpjson.ManagedHttpJsonInterceptorChannel does not close the channels correctly

Offen
#12,368 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
priority: p3 type: bug
Vorherrschende Sprache
Java
Sterne
2.1k
Forks
1.2k
Ø Merge
1 T. 23 Std.
Gemergte PRs (30 T.)
157

Beschreibung

#### Environment details

1. Specify the artifact at the beginning of the title. For example, "api-common", "gax" etc)
2. OS type and version: Linux Debian 6.1.158-1 (2025-11-09) x86_64 GNU/Linux
3. Java version: openjdk version "11.0.20.1" 2023-08-24
4. artifact version(s): 2.63.1

#### Steps to reproduce

1. Created a GCP API stub which uses "defaultHttpJsonTransportProviderBuilder" and creates an "InstantiatingHttpJsonChannelProvider"
2. On the client close, the close is successfully but the executor service is not being deleted.

#### Code example

```java
ManagedHttpJsonInterceptorChannel(
ManagedHttpJsonChannel channel, HttpJsonClientInterceptor interceptor) {
super();
this.channel = channel;
this.interceptor = interceptor;
}

@Override
public synchronized void shutdown() {
channel.shutdown();
}
```

super() calls ManagedHttpJsonChannel which creates a fixed executor service that never gets deleted.
```
protected ManagedHttpJsonChannel() {
this(null, true, null, null);
}

private ManagedHttpJsonChannel(
Executor executor,
boolean usingDefaultExecutor,
String endpoint,
@Nullable HttpTransport httpTransport) {
this.executor = executor;
this.usingDefaultExecutor = usingDefaultExecutor;
this.endpoint = endpoint;
this.httpTransport = httpTransport == null ? new NetHttpTransport() : httpTransport;
this.deadlineScheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
}
```

Ideally we should call:
```
@Override
public synchronized void shutdown() {
super.shutdown();
channel.shutdown();
}
```
Same applies to shutdownNow(), close()

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.