Camel version 3.15.0

On 10/26/22 14:48, Vyacheslav Boyko wrote:

Hello.

Please help to understand why does the exception occur?

My rout could be simplified to

from("seda://notification-pool?concurrentConsumers=500")
.process(exchange -> exchange.setProperty(WEBHOOK_URL, getWebhookUrl(exchange)))
.setHeader(Exchange.HTTP_METHOD, constant("POST"))
.setHeader(Exchange.CONTENT_TYPE, constant("application/json"))
.process(exchange ->
         exchange.getIn().setHeader(Constants.RECIPIENTS,
                 
Collections.singleton(format("%s?exchangePattern=InOut&connectTimeout=30&connectionRequestTimeout=30",
 exchange.getProperty(WEBHOOK_URL)))))
.process(exchange ->log.info("RECIPIENT LIST: " + 
exchange.getIn().getHeader(Constants.RECIPIENTS)))
.recipientList(header(Constants.RECIPIENTS))

And I have an exception:

java.net.SocketTimeoutException: Read timed out
    at java.base/java.net.SocketInputStream.socketRead0(Native Method)
    at java.base/java.net.SocketInputStream.socketRead(Unknown Source)
    at java.base/java.net.SocketInputStream.read(Unknown Source)
    at java.base/java.net.SocketInputStream.read(Unknown Source)
    at java.base/sun.security.ssl.SSLSocketInputRecord.read(Unknown Source)     at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(Unknown Source)     at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(Unknown Source)     at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(Unknown Source)     at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(Unknown Source)     at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)     at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153)     at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280)     at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)     at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)     at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)     at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)     at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157)     at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)     at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)     at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)     at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)     at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)     at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)     at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)     at org.apache.camel.component.http.HttpProducer.executeMethod(HttpProducer.java:447)     at org.apache.camel.component.http.HttpProducer.process(HttpProducer.java:275)     at org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:66)     at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.doRun(RedeliveryErrorHandler.java:812)     at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.run(RedeliveryErrorHandler.java:720)     at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:187)     at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:64)
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:184)
    at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:399)     at org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:269)     at org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:187)     at org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:130)     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)


The log is:

RECIPIENT LIST: [https://test.my-domain.com/pushNotificationPayment?exchangePattern=InOut&connectTimeout=30&connectionRequestTimeout=30]

The fact is webhook is being delivered successfully despite of having this exception.

And when I use CURL to check webhook URL on data acceptance, it returns meaningful body. Seems only Camel could not read the answer.

Why?

--
Vyacheslav Boyko
mailto:mail4...@gmail.com

--
Vyacheslav Boyko
mailto:mail4...@gmail.com

Reply via email to