Hi!

Please help me to solve a problem.
It worked properly on Apache Camel 3.20.1 (Java 11) and fails with
timeout after I upgrade it onto 3.20.3 (Java 17).
I run my app on SpringBoot.

I have a service with the route which just uploads files onto AWS S3.

from("direct:save-s3")
.routeId("save-s3")
.messageHistory()
.onException(SdkException.class)
.maximumRedeliveries(AWS_S3_MAXIMUM_REDELIVERIES)
.redeliveryDelay(AWS_S3_REDELIVERY_DELAY_MS)
.handled(false)
.end()
.process(exchange -> exchange.setProperty(DOCUMENT_PREVIEW_ID,
PREVIEW_PREFIX +
exchange.getIn().getBody(DocumentDto.class).getDocumentId()))
.log(INFO, "Save preview ${exchangeProperty[" + DOCUMENT_PREVIEW_ID +
"]}")
.process((exchange) -> {
DocumentDto documentDto = exchange.getIn().getBody(DocumentDto.class);
exchange.getIn().setHeader(AWS2S3Constants.KEY,
exchange.getProperty(DOCUMENT_PREVIEW_ID));
String preview =
Base64.getEncoder().encodeToString(imageService.getPreview(documentDto.
getDocumentContent()));
exchange.getIn().setBody(preview);
})
.to("aws2-
s3://BUCKET?accessKey=RAW(SOME_KEY)&secretKey=RAW(SOME_KEY)&region=REGI
ON");

Here is my stacktrace:

software.amazon.awssdk.core.exception.SdkClientException: Unable to
execute HTTP request: Connect to pfe-clientfiles-qa.s3.eu-north-
1.amazonaws.com:443 [pfe-clientfiles-qa.s3.eu-north-
1.amazonaws.com/52.95.170.64] failed: Connect timed out
at
software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.bu
ild(SdkClientException.java:111)
at
software.amazon.awssdk.core.exception.SdkClientException.create(SdkClie
ntException.java:47)
at
software.amazon.awssdk.core.internal.http.pipeline.stages.utils.Retryab
leStageHelper.setLastException(RetryableStageHelper.java:223)
at
software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStag
e.execute(RetryableStage.java:83)
at
software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStag
e.execute(RetryableStage.java:36)
at
software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuild
er$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:20
6)
at
software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(S
treamManagingStage.java:56)
at
software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(S
treamManagingStage.java:36)
at
software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeou
tTrackingStage.executeWithTimer(ApiCallTimeoutTrackingStage.java:80)
at
software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeou
tTrackingStage.execute(ApiCallTimeoutTrackingStage.java:60)
at
software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeou
tTrackingStage.execute(ApiCallTimeoutTrackingStage.java:42)
at
software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallMetric
CollectionStage.execute(ApiCallMetricCollectionStage.java:48)
at
software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallMetric
CollectionStage.execute(ApiCallMetricCollectionStage.java:31)
at
software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuild
er$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:20
6)
at
software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuild
er$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:20
6)
at
software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFail
ureExceptionReportingStage.execute(ExecutionFailureExceptionReportingSt
age.java:37)
at
software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFail
ureExceptionReportingStage.execute(ExecutionFailureExceptionReportingSt
age.java:26)
at
software.amazon.awssdk.core.internal.http.AmazonSyncHttpClient$RequestE
xecutionBuilderImpl.execute(AmazonSyncHttpClient.java:193)
at
software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.invo
ke(BaseSyncClientHandler.java:103)
at
software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.doEx
ecute(BaseSyncClientHandler.java:171)
at
software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.lamb
da$execute$1(BaseSyncClientHandler.java:82)
at
software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.meas
ureApiCallSuccess(BaseSyncClientHandler.java:179)
at
software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.exec
ute(BaseSyncClientHandler.java:76)
at
software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute
(SdkSyncClientHandler.java:45)
at
software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.exec
ute(AwsSyncClientHandler.java:56)
at
software.amazon.awssdk.services.s3.DefaultS3Client.putObject(DefaultS3C
lient.java:9326)
at
org.apache.camel.component.aws2.s3.AWS2S3Producer.doPutObject(AWS2S3Pro
ducer.java:393)
at
org.apache.camel.component.aws2.s3.AWS2S3Producer.processSingleOp(AWS2S
3Producer.java:296)
at
org.apache.camel.component.aws2.s3.AWS2S3Producer.process(AWS2S3Produce
r.java:97)
at
org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsync
ProcessorBridge.process(AsyncProcessorConverterHelper.java:66)
at
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:172
)
at
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$Redelive
ryTask.redeliver(RedeliveryErrorHandler.java:893)
at
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(De
faultReactiveExecutor.java:181)
at
org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(Defau
ltReactiveExecutor.java:59)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:165)
at
org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelIntern
alProcessor.java:392)
at
org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(
DefaultAsyncProcessorAwaitManager.java:83)
at
org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSu
pport.java:41)
at
org.apache.camel.component.kafka.consumer.support.KafkaRecordProcessor.
processExchange(KafkaRecordProcessor.java:110)
at
org.apache.camel.component.kafka.consumer.support.KafkaRecordProcessorF
acade.processRecord(KafkaRecordProcessorFacade.java:125)
at
org.apache.camel.component.kafka.consumer.support.KafkaRecordProcessorF
acade.processPolledRecords(KafkaRecordProcessorFacade.java:78)
at
org.apache.camel.component.kafka.KafkaFetchRecords.startPolling(KafkaFe
tchRecords.java:328)
at
org.apache.camel.component.kafka.KafkaFetchRecords.run(KafkaFetchRecord
s.java:160)
at
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown
Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown
Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
Source)
at java.base/java.lang.Thread.run(Unknown Source)

AWS2-S3 component does not have a parameter to adjust timeout.

What do I do?

Reply via email to