Skip to content

Commit a1c17c6

Browse files
author
ehennum
committed
Bug:26342 keep reference to client in services to prevent garbage collection
git-svn-id: svn+ssh://svn.marklogic.com/project/engsvn/client-api/java/branches/b1_0@164545 62cac252-8da6-4816-9e9d-6dc37b19578c
1 parent e2622e6 commit a1c17c6

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed

src/main/java/com/marklogic/client/impl/DatabaseClientImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public class DatabaseClientImpl implements DatabaseClient {
4141

4242
public DatabaseClientImpl(RESTServices services) {
4343
this.services = services;
44+
services.setDatabaseClient(this);
4445
}
4546

4647
@Override

src/main/java/com/marklogic/client/impl/JerseyServices.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353

5454
import com.marklogic.client.DatabaseClientFactory.Authentication;
5555
import com.marklogic.client.DatabaseClientFactory.SSLHostnameVerifier;
56+
import com.marklogic.client.DatabaseClient;
5657
import com.marklogic.client.FailedRequestException;
5758
import com.marklogic.client.ForbiddenUserException;
5859
import com.marklogic.client.MarkLogicInternalException;
@@ -120,6 +121,7 @@ public void verify(String hostname, String[] cns, String[] subjectAlts)
120121
}
121122
}
122123

124+
private DatabaseClient databaseClient;
123125
private ApacheHttpClient4 client;
124126
private WebResource connection;
125127

@@ -317,8 +319,21 @@ else if (authenType == Authentication.DIGEST)
317319
connection = client.resource(baseUri);
318320
}
319321

322+
@Override
323+
public DatabaseClient getDatabaseClient() {
324+
return databaseClient;
325+
}
326+
@Override
327+
public void setDatabaseClient(DatabaseClient client) {
328+
this.databaseClient = client;
329+
}
330+
320331
@Override
321332
public void release() {
333+
if (databaseClient != null) {
334+
databaseClient = null;
335+
}
336+
322337
if (client == null)
323338
return;
324339

src/main/java/com/marklogic/client/impl/RESTServices.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import javax.net.ssl.SSLContext;
2121

22+
import com.marklogic.client.DatabaseClient;
2223
import com.marklogic.client.DatabaseClientFactory.Authentication;
2324
import com.marklogic.client.DatabaseClientFactory.SSLHostnameVerifier;
2425
import com.marklogic.client.FailedRequestException;
@@ -44,6 +45,8 @@
4445
public interface RESTServices {
4546
public void connect(String host, int port, String user, String password, Authentication type,
4647
SSLContext context, SSLHostnameVerifier verifier);
48+
public DatabaseClient getDatabaseClient();
49+
public void setDatabaseClient(DatabaseClient client);
4750
public void release();
4851

4952
public void deleteDocument(RequestLogger logger, DocumentDescriptor desc, String transactionId,

0 commit comments

Comments
 (0)