This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch camel-3.20.x in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-3.20.x by this push: new 25cb36f1f66 CAMEL-19281 - Fixing the connection memory leak issue (#9901) 25cb36f1f66 is described below commit 25cb36f1f66e644e3a0c81da2c35b8bcad6dc627 Author: Rhuan Rocha <rhuan...@gmail.com> AuthorDate: Wed Apr 19 16:25:09 2023 -0300 CAMEL-19281 - Fixing the connection memory leak issue (#9901) Signed-off-by: Rhuan Rocha <rhuan...@gmail.com> --- .../cloudtrail/CloudtrailConsumerHealthCheck.java | 3 +- .../SecretsManagerClientHealthCheck.java | 4 +-- .../aws2/athena/Athena2ClientHealthCheck.java | 3 +- .../component/aws2/cw/Cw2ClientHealthCheck.java | 4 +-- .../component/aws2/ddb/Ddb2ClientHealthCheck.java | 4 +-- .../component/aws2/ec2/AWS2EC2HealthCheck.java | 4 +-- .../component/aws2/eks/EKS2ClientHealthCheck.java | 4 +-- .../eventbridge/EventbridgeClientHealthCheck.java | 4 +-- .../camel/component/aws2/iam/IAM2HealthCheck.java | 4 +-- .../aws2/kinesis/Kinesis2ConsumerHealthCheck.java | 33 +++++++++++++--------- .../aws2/lambda/Lambda2ClientHealthCheck.java | 4 +-- .../component/aws2/mq/MQ2ClientHealthCheck.java | 4 +-- .../aws2/s3/AWS2S3ConsumerHealthCheck.java | 3 +- .../camel/component/aws2/sns/Sns2HealthCheck.java | 5 +--- .../aws2/sqs/Sqs2ConsumerHealthCheck.java | 4 +-- .../translate/Translate2ClientHealthCheck.java | 4 +-- 16 files changed, 34 insertions(+), 57 deletions(-) diff --git a/components/camel-aws/camel-aws-cloudtrail/src/main/java/org/apache/camel/component/aws/cloudtrail/CloudtrailConsumerHealthCheck.java b/components/camel-aws/camel-aws-cloudtrail/src/main/java/org/apache/camel/component/aws/cloudtrail/CloudtrailConsumerHealthCheck.java index aea24fe3f00..82b1f3e7704 100644 --- a/components/camel-aws/camel-aws-cloudtrail/src/main/java/org/apache/camel/component/aws/cloudtrail/CloudtrailConsumerHealthCheck.java +++ b/components/camel-aws/camel-aws-cloudtrail/src/main/java/org/apache/camel/component/aws/cloudtrail/CloudtrailConsumerHealthCheck.java @@ -44,7 +44,7 @@ public class CloudtrailConsumerHealthCheck extends AbstractHealthCheck { @Override protected void doCall(HealthCheckResultBuilder builder, Map<String, Object> options) { - try { + try (CloudTrailClient client = cloudtrailConsumer.getEndpoint().getClient()) { CloudtrailConfiguration configuration = cloudtrailConsumer.getEndpoint().getConfiguration(); if (ObjectHelper.isNotEmpty(configuration.getRegion())) { if (!CloudTrailClient.serviceMetadata().regions().contains(Region.of(configuration.getRegion()))) { @@ -53,7 +53,6 @@ public class CloudtrailConsumerHealthCheck extends AbstractHealthCheck { return; } } - CloudTrailClient client = cloudtrailConsumer.getEndpoint().getClient(); client.listChannels(ListChannelsRequest.builder().maxResults(1).build()); } catch (AwsServiceException e) { diff --git a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheck.java b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheck.java index 0a29270ba74..9a65e367386 100644 --- a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheck.java +++ b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheck.java @@ -52,9 +52,7 @@ public class SecretsManagerClientHealthCheck extends AbstractHealthCheck { return; } } - try { - SecretsManagerClient secretsManagerClient = secretsManagerEndpoint.getSecretsManagerClient(); - + try (SecretsManagerClient secretsManagerClient = secretsManagerEndpoint.getSecretsManagerClient()) { secretsManagerClient.listSecrets(ListSecretsRequest.builder().maxResults(1).build()); } catch (AwsServiceException e) { builder.message(e.getMessage()); diff --git a/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheck.java b/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheck.java index e79506f4d32..481c7902c6c 100644 --- a/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheck.java +++ b/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheck.java @@ -47,7 +47,7 @@ public class Athena2ClientHealthCheck extends AbstractHealthCheck { @Override protected void doCall(HealthCheckResultBuilder builder, Map<String, Object> options) { - try { + try (AthenaClient client = athena2Endpoint.getAthenaClient()) { if (ObjectHelper.isNotEmpty(athena2Endpoint.getConfiguration().getRegion())) { if (!AthenaClient.serviceMetadata().regions() .contains(Region.of(athena2Endpoint.getConfiguration().getRegion()))) { @@ -56,7 +56,6 @@ public class Athena2ClientHealthCheck extends AbstractHealthCheck { return; } } - AthenaClient client = athena2Endpoint.getAthenaClient(); client.listQueryExecutions(ListQueryExecutionsRequest.builder().maxResults(1).build()); } catch (AwsServiceException e) { diff --git a/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2ClientHealthCheck.java b/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2ClientHealthCheck.java index d04cff05d84..03a89861614 100644 --- a/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2ClientHealthCheck.java +++ b/components/camel-aws/camel-aws2-cw/src/main/java/org/apache/camel/component/aws2/cw/Cw2ClientHealthCheck.java @@ -54,9 +54,7 @@ public class Cw2ClientHealthCheck extends AbstractHealthCheck { return; } } - try { - CloudWatchClient cw2Client = cw2Endpoint.getCloudWatchClient(); - + try (CloudWatchClient cw2Client = cw2Endpoint.getCloudWatchClient()) { cw2Client.listDashboards(ListDashboardsRequest.builder().build()); } catch (AwsServiceException e) { builder.message(e.getMessage()); diff --git a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2ClientHealthCheck.java b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2ClientHealthCheck.java index 495978f0fd3..9bab3e3b677 100644 --- a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2ClientHealthCheck.java +++ b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2ClientHealthCheck.java @@ -54,9 +54,7 @@ public class Ddb2ClientHealthCheck extends AbstractHealthCheck { return; } } - try { - DynamoDbClient ddbClient = ddb2Endpoint.getDdbClient(); - + try (DynamoDbClient ddbClient = ddb2Endpoint.getDdbClient()) { ddbClient.listTables(ListTablesRequest.builder().limit(1).build()); } catch (AwsServiceException e) { builder.message(e.getMessage()); diff --git a/components/camel-aws/camel-aws2-ec2/src/main/java/org/apache/camel/component/aws2/ec2/AWS2EC2HealthCheck.java b/components/camel-aws/camel-aws2-ec2/src/main/java/org/apache/camel/component/aws2/ec2/AWS2EC2HealthCheck.java index 728acac6bde..995e870552f 100644 --- a/components/camel-aws/camel-aws2-ec2/src/main/java/org/apache/camel/component/aws2/ec2/AWS2EC2HealthCheck.java +++ b/components/camel-aws/camel-aws2-ec2/src/main/java/org/apache/camel/component/aws2/ec2/AWS2EC2HealthCheck.java @@ -46,7 +46,7 @@ public class AWS2EC2HealthCheck extends AbstractHealthCheck { @Override protected void doCall(HealthCheckResultBuilder builder, Map<String, Object> options) { - try { + try (Ec2Client client = aws2EC2Endpoint.getEc2Client()) { AWS2EC2Configuration configuration = aws2EC2Endpoint.getConfiguration(); if (!Ec2Client.serviceMetadata().regions().contains(Region.of(configuration.getRegion()))) { builder.message("The service is not supported in this region"); @@ -54,8 +54,6 @@ public class AWS2EC2HealthCheck extends AbstractHealthCheck { return; } - Ec2Client client = aws2EC2Endpoint.getEc2Client(); - client.describeInstances(); } catch (AwsServiceException e) { builder.message(e.getMessage()); diff --git a/components/camel-aws/camel-aws2-eks/src/main/java/org/apache/camel/component/aws2/eks/EKS2ClientHealthCheck.java b/components/camel-aws/camel-aws2-eks/src/main/java/org/apache/camel/component/aws2/eks/EKS2ClientHealthCheck.java index c5cdf8f81ec..3f0c677819f 100644 --- a/components/camel-aws/camel-aws2-eks/src/main/java/org/apache/camel/component/aws2/eks/EKS2ClientHealthCheck.java +++ b/components/camel-aws/camel-aws2-eks/src/main/java/org/apache/camel/component/aws2/eks/EKS2ClientHealthCheck.java @@ -54,9 +54,7 @@ public class EKS2ClientHealthCheck extends AbstractHealthCheck { return; } } - try { - EksClient eks2Client = eks2Endpoint.getEksClient(); - + try (EksClient eks2Client = eks2Endpoint.getEksClient()) { eks2Client.listClusters(ListClustersRequest.builder().maxResults(1).build()); } catch (AwsServiceException e) { builder.message(e.getMessage()); diff --git a/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeClientHealthCheck.java b/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeClientHealthCheck.java index f4baa2601e1..bdaaf8e5fe0 100644 --- a/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeClientHealthCheck.java +++ b/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeClientHealthCheck.java @@ -52,9 +52,7 @@ public class EventbridgeClientHealthCheck extends AbstractHealthCheck { return; } } - try { - EventBridgeClient eventbridgeClient = eventbridgeEndpoint.getEventbridgeClient(); - + try (EventBridgeClient eventbridgeClient = eventbridgeEndpoint.getEventbridgeClient()) { eventbridgeClient.listEventBuses(ListEventBusesRequest.builder().limit(1).build()); } catch (AwsServiceException e) { builder.message(e.getMessage()); diff --git a/components/camel-aws/camel-aws2-iam/src/main/java/org/apache/camel/component/aws2/iam/IAM2HealthCheck.java b/components/camel-aws/camel-aws2-iam/src/main/java/org/apache/camel/component/aws2/iam/IAM2HealthCheck.java index 21e105404fe..13d80628169 100644 --- a/components/camel-aws/camel-aws2-iam/src/main/java/org/apache/camel/component/aws2/iam/IAM2HealthCheck.java +++ b/components/camel-aws/camel-aws2-iam/src/main/java/org/apache/camel/component/aws2/iam/IAM2HealthCheck.java @@ -43,7 +43,7 @@ public class IAM2HealthCheck extends AbstractHealthCheck { @Override protected void doCall(HealthCheckResultBuilder builder, Map<String, Object> options) { - try { + try (IamClient client = endpoint.getIamClient()) { IAM2Configuration configuration = endpoint.getConfiguration(); if (!IamClient.serviceMetadata().regions().contains(Region.of(configuration.getRegion()))) { builder.message("The service is not supported in this region"); @@ -51,8 +51,6 @@ public class IAM2HealthCheck extends AbstractHealthCheck { return; } - IamClient client = endpoint.getIamClient(); - client.listAccessKeys(ListAccessKeysRequest.builder().maxItems(1).build()); } catch (SdkClientException e) { builder.message(e.getMessage()); diff --git a/components/camel-aws/camel-aws2-kinesis/src/main/java/org/apache/camel/component/aws2/kinesis/Kinesis2ConsumerHealthCheck.java b/components/camel-aws/camel-aws2-kinesis/src/main/java/org/apache/camel/component/aws2/kinesis/Kinesis2ConsumerHealthCheck.java index 2321ff9aff8..27b34f09e3f 100644 --- a/components/camel-aws/camel-aws2-kinesis/src/main/java/org/apache/camel/component/aws2/kinesis/Kinesis2ConsumerHealthCheck.java +++ b/components/camel-aws/camel-aws2-kinesis/src/main/java/org/apache/camel/component/aws2/kinesis/Kinesis2ConsumerHealthCheck.java @@ -48,7 +48,7 @@ public class Kinesis2ConsumerHealthCheck extends AbstractHealthCheck { @Override protected void doCall(HealthCheckResultBuilder builder, Map<String, Object> options) { - try { + try (KinesisClient client = buildClient(kinesis2Consumer.getConfiguration())) { Kinesis2Configuration configuration = kinesis2Consumer.getConfiguration(); if (ObjectHelper.isNotEmpty(configuration.getRegion())) { if (!KinesisClient.serviceMetadata().regions().contains(Region.of(configuration.getRegion()))) { @@ -57,19 +57,7 @@ public class Kinesis2ConsumerHealthCheck extends AbstractHealthCheck { return; } } - KinesisClient client; - if (!configuration.isUseDefaultCredentialsProvider()) { - AwsBasicCredentials cred - = AwsBasicCredentials.create(configuration.getAccessKey(), configuration.getSecretKey()); - KinesisClientBuilder clientBuilder = KinesisClient.builder(); - client = clientBuilder.credentialsProvider(StaticCredentialsProvider.create(cred)) - .region(Region.of(configuration.getRegion())).build(); - } else if (ObjectHelper.isNotEmpty(configuration.getAmazonKinesisClient())) { - client = configuration.getAmazonKinesisClient(); - } else { - KinesisClientBuilder clientBuilder = KinesisClient.builder(); - client = clientBuilder.region(Region.of(configuration.getRegion())).build(); - } + client.listStreams(); } catch (AwsServiceException e) { builder.message(e.getMessage()); @@ -93,4 +81,21 @@ public class Kinesis2ConsumerHealthCheck extends AbstractHealthCheck { } + private KinesisClient buildClient(Kinesis2Configuration configuration) { + + if (!configuration.isUseDefaultCredentialsProvider()) { + AwsBasicCredentials cred + = AwsBasicCredentials.create(configuration.getAccessKey(), configuration.getSecretKey()); + KinesisClientBuilder clientBuilder = KinesisClient.builder(); + return clientBuilder.credentialsProvider(StaticCredentialsProvider.create(cred)) + .region(Region.of(configuration.getRegion())).build(); + } + if (ObjectHelper.isNotEmpty(configuration.getAmazonKinesisClient())) { + return configuration.getAmazonKinesisClient(); + } + KinesisClientBuilder clientBuilder = KinesisClient.builder(); + return clientBuilder.region(Region.of(configuration.getRegion())).build(); + + } + } diff --git a/components/camel-aws/camel-aws2-lambda/src/main/java/org/apache/camel/component/aws2/lambda/Lambda2ClientHealthCheck.java b/components/camel-aws/camel-aws2-lambda/src/main/java/org/apache/camel/component/aws2/lambda/Lambda2ClientHealthCheck.java index a2b97b92453..e112c6cad27 100644 --- a/components/camel-aws/camel-aws2-lambda/src/main/java/org/apache/camel/component/aws2/lambda/Lambda2ClientHealthCheck.java +++ b/components/camel-aws/camel-aws2-lambda/src/main/java/org/apache/camel/component/aws2/lambda/Lambda2ClientHealthCheck.java @@ -52,9 +52,7 @@ public class Lambda2ClientHealthCheck extends AbstractHealthCheck { return; } } - try { - LambdaClient lambda2Client = lambda2Endpoint.getAwsLambdaClient(); - + try (LambdaClient lambda2Client = lambda2Endpoint.getAwsLambdaClient()) { lambda2Client.listFunctions(ListFunctionsRequest.builder().maxItems(1).build()); } catch (AwsServiceException e) { builder.message(e.getMessage()); diff --git a/components/camel-aws/camel-aws2-mq/src/main/java/org/apache/camel/component/aws2/mq/MQ2ClientHealthCheck.java b/components/camel-aws/camel-aws2-mq/src/main/java/org/apache/camel/component/aws2/mq/MQ2ClientHealthCheck.java index 9ebfeb40a17..20d0b897e52 100644 --- a/components/camel-aws/camel-aws2-mq/src/main/java/org/apache/camel/component/aws2/mq/MQ2ClientHealthCheck.java +++ b/components/camel-aws/camel-aws2-mq/src/main/java/org/apache/camel/component/aws2/mq/MQ2ClientHealthCheck.java @@ -52,9 +52,7 @@ public class MQ2ClientHealthCheck extends AbstractHealthCheck { return; } } - try { - MqClient mqClient = mq2Endpoint.getAmazonMqClient(); - + try (MqClient mqClient = mq2Endpoint.getAmazonMqClient()) { mqClient.listBrokers(ListBrokersRequest.builder().maxResults(1).build()); } catch (AwsServiceException e) { builder.message(e.getMessage()); diff --git a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3ConsumerHealthCheck.java b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3ConsumerHealthCheck.java index a0976407af7..6519fd411a8 100644 --- a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3ConsumerHealthCheck.java +++ b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3ConsumerHealthCheck.java @@ -46,7 +46,7 @@ public class AWS2S3ConsumerHealthCheck extends AbstractHealthCheck { @Override protected void doCall(HealthCheckResultBuilder builder, Map<String, Object> options) { - try { + try (S3Client client = aws2S3Consumer.getAmazonS3Client()) { AWS2S3Configuration configuration = aws2S3Consumer.getConfiguration(); if (ObjectHelper.isNotEmpty(configuration.getRegion())) { if (!S3Client.serviceMetadata().regions().contains(Region.of(configuration.getRegion()))) { @@ -55,7 +55,6 @@ public class AWS2S3ConsumerHealthCheck extends AbstractHealthCheck { return; } } - S3Client client = aws2S3Consumer.getAmazonS3Client(); client.headBucket(HeadBucketRequest.builder().bucket(configuration.getBucketName()).build()); } catch (AwsServiceException e) { diff --git a/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2HealthCheck.java b/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2HealthCheck.java index 0f2292c734f..d5a3096f6d6 100644 --- a/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2HealthCheck.java +++ b/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2HealthCheck.java @@ -44,16 +44,13 @@ public class Sns2HealthCheck extends AbstractHealthCheck { @Override protected void doCall(HealthCheckResultBuilder builder, Map<String, Object> options) { - try { + try (SnsClient client = sns2Endpoint.getSNSClient()) { Sns2Configuration configuration = sns2Endpoint.getConfiguration(); if (!SnsClient.serviceMetadata().regions().contains(Region.of(configuration.getRegion()))) { builder.message("The service is not supported in this region"); builder.down(); return; } - - SnsClient client = sns2Endpoint.getSNSClient(); - client.listSubscriptions(); } catch (AwsServiceException e) { builder.message(e.getMessage()); diff --git a/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2ConsumerHealthCheck.java b/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2ConsumerHealthCheck.java index a383a0cffb2..7d10f0f459a 100644 --- a/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2ConsumerHealthCheck.java +++ b/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2ConsumerHealthCheck.java @@ -46,7 +46,7 @@ public class Sqs2ConsumerHealthCheck extends AbstractHealthCheck { @Override protected void doCall(HealthCheckResultBuilder builder, Map<String, Object> options) { - try { + try (SqsClient client = sqs2Consumer.getClient()) { Sqs2Configuration configuration = sqs2Consumer.getConfiguration(); if (ObjectHelper.isNotEmpty(configuration.getRegion())) { if (!SqsClient.serviceMetadata().regions().contains(Region.of(configuration.getRegion()))) { @@ -56,8 +56,6 @@ public class Sqs2ConsumerHealthCheck extends AbstractHealthCheck { } } - SqsClient client = sqs2Consumer.getClient(); - client.listQueues(ListQueuesRequest.builder().maxResults(1).build()); } catch (AwsServiceException e) { builder.message(e.getMessage()); diff --git a/components/camel-aws/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2ClientHealthCheck.java b/components/camel-aws/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2ClientHealthCheck.java index 882c6db0580..53fdd306b3b 100644 --- a/components/camel-aws/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2ClientHealthCheck.java +++ b/components/camel-aws/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2ClientHealthCheck.java @@ -52,9 +52,7 @@ public class Translate2ClientHealthCheck extends AbstractHealthCheck { return; } } - try { - TranslateClient translateClient = translate2Endpoint.getTranslateClient(); - + try (TranslateClient translateClient = translate2Endpoint.getTranslateClient()) { translateClient.listLanguages(ListLanguagesRequest.builder().maxResults(1).build()); } catch (AwsServiceException e) { builder.message(e.getMessage());