Skip to content

Commit 7034d65

Browse files
committed
Clean up TLS Socket Factory in key management service
JAVA-3734
1 parent 535a240 commit 7034d65

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

driver-core/src/main/com/mongodb/internal/async/client/Crypt.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import com.mongodb.MongoClientException;
2020
import com.mongodb.MongoInternalException;
21-
import com.mongodb.internal.async.SingleResultCallback;
2221
import com.mongodb.client.model.vault.DataKeyOptions;
2322
import com.mongodb.client.model.vault.EncryptOptions;
2423
import com.mongodb.crypt.capi.MongoCrypt;
@@ -29,6 +28,7 @@
2928
import com.mongodb.crypt.capi.MongoKeyDecryptor;
3029
import com.mongodb.diagnostics.logging.Logger;
3130
import com.mongodb.diagnostics.logging.Loggers;
31+
import com.mongodb.internal.async.SingleResultCallback;
3232
import com.mongodb.lang.Nullable;
3333
import org.bson.BsonBinary;
3434
import org.bson.BsonDocument;
@@ -242,6 +242,7 @@ public void close() {
242242
commandMarker.close();
243243
}
244244
keyRetriever.close();
245+
keyManagementService.close();
245246
}
246247

247248
private void executeStateMachine(final MongoCryptContext cryptContext, final String databaseName,

driver-core/src/main/com/mongodb/internal/async/client/KeyManagementService.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@
1818

1919
import com.mongodb.MongoSocketException;
2020
import com.mongodb.ServerAddress;
21-
import com.mongodb.internal.async.SingleResultCallback;
2221
import com.mongodb.connection.AsyncCompletionHandler;
2322
import com.mongodb.connection.SocketSettings;
2423
import com.mongodb.connection.SslSettings;
2524
import com.mongodb.connection.Stream;
2625
import com.mongodb.connection.StreamFactory;
2726
import com.mongodb.connection.TlsChannelStreamFactoryFactory;
2827
import com.mongodb.crypt.capi.MongoKeyDecryptor;
28+
import com.mongodb.internal.async.SingleResultCallback;
2929
import com.mongodb.internal.connection.AsynchronousChannelStream;
3030
import org.bson.ByteBuf;
3131
import org.bson.ByteBufNIO;
@@ -40,17 +40,24 @@
4040

4141
class KeyManagementService {
4242
private final int defaultPort;
43+
private final TlsChannelStreamFactoryFactory tlsChannelStreamFactoryFactory;
4344
private final StreamFactory streamFactory;
4445

4546
KeyManagementService(final SSLContext sslContext, final int defaultPort, final int timeoutMillis) {
4647
this.defaultPort = defaultPort;
47-
this.streamFactory = new TlsChannelStreamFactoryFactory().create(SocketSettings.builder()
48+
this.tlsChannelStreamFactoryFactory = new TlsChannelStreamFactoryFactory();
49+
this.streamFactory = tlsChannelStreamFactoryFactory.create(SocketSettings.builder()
4850
.connectTimeout(timeoutMillis, TimeUnit.MILLISECONDS)
4951
.readTimeout(timeoutMillis, TimeUnit.MILLISECONDS)
5052
.build(),
5153
SslSettings.builder().enabled(true).context(sslContext).build());
5254
}
5355

56+
57+
public void close() {
58+
tlsChannelStreamFactoryFactory.close();
59+
}
60+
5461
void decryptKey(final MongoKeyDecryptor keyDecryptor, final SingleResultCallback<Void> callback) {
5562
streamOpen(keyDecryptor, callback);
5663
}

0 commit comments

Comments
 (0)