Skip to content

Commit 65ddaf7

Browse files
author
ehennum
committed
Bug:25951 keep reference to client in services to prevent garbage collection
git-svn-id: svn+ssh://svn.marklogic.com/project/engsvn/client-api/java/branches/b2_0@164242 62cac252-8da6-4816-9e9d-6dc37b19578c
1 parent 60beb8c commit 65ddaf7

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
@@ -44,6 +44,7 @@ public class DatabaseClientImpl implements DatabaseClient {
4444

4545
public DatabaseClientImpl(RESTServices services) {
4646
this.services = services;
47+
services.setDatabaseClient(this);
4748
}
4849

4950
public HandleFactoryRegistry getHandleRegistry() {

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

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

6060
import com.marklogic.client.DatabaseClientFactory.Authentication;
6161
import com.marklogic.client.DatabaseClientFactory.SSLHostnameVerifier;
62+
import com.marklogic.client.DatabaseClient;
6263
import com.marklogic.client.FailedRequestException;
6364
import com.marklogic.client.ForbiddenUserException;
6465
import com.marklogic.client.MarkLogicInternalException;
@@ -142,6 +143,7 @@ public void verify(String hostname, String[] cns, String[] subjectAlts)
142143
}
143144
}
144145

146+
private DatabaseClient databaseClient;
145147
private ApacheHttpClient4 client;
146148
private WebResource connection;
147149

@@ -373,8 +375,21 @@ else if (authenType == Authentication.DIGEST)
373375
connection = client.resource(baseUri);
374376
}
375377

378+
@Override
379+
public DatabaseClient getDatabaseClient() {
380+
return databaseClient;
381+
}
382+
@Override
383+
public void setDatabaseClient(DatabaseClient client) {
384+
this.databaseClient = client;
385+
}
386+
376387
@Override
377388
public void release() {
389+
if (databaseClient != null) {
390+
databaseClient = null;
391+
}
392+
378393
if (client == null)
379394
return;
380395

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

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

2121
import javax.net.ssl.SSLContext;
2222

23+
import com.marklogic.client.DatabaseClient;
2324
import com.marklogic.client.DatabaseClientFactory.Authentication;
2425
import com.marklogic.client.DatabaseClientFactory.SSLHostnameVerifier;
2526
import com.marklogic.client.FailedRequestException;
@@ -50,6 +51,8 @@
5051
public interface RESTServices {
5152
public void connect(String host, int port, String user, String password, Authentication type,
5253
SSLContext context, SSLHostnameVerifier verifier);
54+
public DatabaseClient getDatabaseClient();
55+
public void setDatabaseClient(DatabaseClient client);
5356
public void release();
5457

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

0 commit comments

Comments
 (0)