Dirk Zhou created CALCITE-6517:
----------------------------------
Summary: “calcite-mongodb” can not close MongoClient, and thread
will be leaked
Key: CALCITE-6517
URL: https://issues.apache.org/jira/browse/CALCITE-6517
Project: Calcite
Issue Type: Improvement
Reporter: Dirk Zhou
Attachments: image-2024-08-06-16-27-11-691.png
in my code :
{code:java}
Schema schema = new MongoSchemaFactory().create(rootSchema, "schema1", config);
calciteConn.getRootSchema().add( "schema1", schema);
{code}
calciteConn is {*}org.apache.calcite.jdbc.CalciteConnection{*}.
*MongoSchemaFactory* will create *MongoSchema*
when calciteConn.close(), the *MongoClient* created in
"{*}org.apache.calcite.adapter.mongodb.MongoSchema{*}" is not closed, the
thread of "{*}com.mongodb.internal.connection.DefaultServerMonitor{*}" will be
leaked.
{color:#4c9aff}*_My advice:_*{color}
The local variable *“mongo”* is modified to be a *instance variable* ,and
provide getter. This way, when close {*}CalciteConnection{*}, also get
*MongoClient* and close it.
*!image-2024-08-06-16-27-11-691.png|width=978,height=521!*
--
This message was sent by Atlassian Jira
(v8.20.10#820010)