You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/07/11 07:25:44 UTC
[james-project] 06/09: JAMES-2806 Avoid thread leak in Guice
related test
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit a946f443f70309744489296e0e7f43bda0020d19
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Jul 10 13:51:33 2019 +0200
JAMES-2806 Avoid thread leak in Guice related test
Context (and related resources) were only closed for blobStore tests and
not for integration tests.
Also, tests should avoid calling underlying libraries
---
.../apache/james/blob/objectstorage/ObjectStorageBlobsDAO.java | 7 +++++++
.../james/blob/objectstorage/ObjectStorageBlobsDAOAWSTest.java | 10 +++-------
.../james/blob/objectstorage/ObjectStorageBlobsDAOTest.java | 2 +-
3 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAO.java b/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAO.java
index 139d789..2e40ef1 100644
--- a/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAO.java
+++ b/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAO.java
@@ -25,6 +25,8 @@ import java.io.InputStream;
import java.util.Optional;
import java.util.function.Supplier;
+import javax.annotation.PreDestroy;
+
import org.apache.commons.io.IOUtils;
import org.apache.james.blob.api.BlobId;
import org.apache.james.blob.api.BlobStore;
@@ -83,6 +85,11 @@ public class ObjectStorageBlobsDAO implements BlobStore {
return AwsS3ObjectStorage.daoBuilder(testConfig);
}
+ @PreDestroy
+ public void close() {
+ blobStore.getContext().close();
+ }
+
@Override
public Mono<BlobId> save(BucketName bucketName, byte[] data) {
Preconditions.checkNotNull(data);
diff --git a/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSTest.java b/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSTest.java
index 99183d2..a4eb027 100644
--- a/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSTest.java
+++ b/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSTest.java
@@ -39,18 +39,15 @@ public class ObjectStorageBlobsDAOAWSTest implements MetricableBlobStoreContract
private static final HashBlobId.Factory BLOB_ID_FACTORY = new HashBlobId.Factory();
- private BucketName defaultBucketName;
- private org.jclouds.blobstore.BlobStore blobStore;
private ObjectStorageBlobsDAO objectStorageBlobsDAO;
private AwsS3ObjectStorage awsS3ObjectStorage;
- private AwsS3AuthConfiguration configuration;
private BlobStore testee;
@BeforeEach
void setUp(DockerAwsS3Container dockerAwsS3) {
awsS3ObjectStorage = new AwsS3ObjectStorage();
- defaultBucketName = BucketName.of("e7a929fe-2003-48d4-aaa9-a65d4954379d");
- configuration = AwsS3AuthConfiguration.builder()
+ BucketName defaultBucketName = BucketName.of("e7a929fe-2003-48d4-aaa9-a65d4954379d");
+ AwsS3AuthConfiguration configuration = AwsS3AuthConfiguration.builder()
.endpoint(dockerAwsS3.getEndpoint())
.accessKeyId(DockerAwsS3Container.ACCESS_KEY_ID)
.secretKey(DockerAwsS3Container.SECRET_ACCESS_KEY)
@@ -62,7 +59,6 @@ public class ObjectStorageBlobsDAOAWSTest implements MetricableBlobStoreContract
.namespace(defaultBucketName)
.blobPutter(awsS3ObjectStorage.putBlob(configuration));
- blobStore = builder.getSupplier().get();
objectStorageBlobsDAO = builder.build();
testee = new MetricableBlobStore(metricsTestExtension.getMetricFactory(), objectStorageBlobsDAO);
}
@@ -71,7 +67,7 @@ public class ObjectStorageBlobsDAOAWSTest implements MetricableBlobStoreContract
void tearDown() {
testee.deleteBucket(testee.getDefaultBucketName()).block();
testee.deleteBucket(CUSTOM).block();
- blobStore.getContext().close();
+ objectStorageBlobsDAO.close();
awsS3ObjectStorage.tearDown();
}
diff --git a/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOTest.java b/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOTest.java
index 65f3f0f..3bac5d4 100644
--- a/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOTest.java
+++ b/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOTest.java
@@ -97,7 +97,7 @@ public class ObjectStorageBlobsDAOTest implements MetricableBlobStoreContract, B
void tearDown() {
testee.deleteBucket(testee.getDefaultBucketName()).block();
testee.deleteBucket(CUSTOM).block();
- blobStore.getContext().close();
+ objectStorageBlobsDAO.close();
}
@Override
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org