This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch exchange-factory
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/exchange-factory by this push:
     new ae24d55  CAMEL-16222: PooledExchangeFactory experiment
ae24d55 is described below

commit ae24d55321742645081770ae1445ab4097cde8a6
Author: Claus Ibsen <[email protected]>
AuthorDate: Sun Feb 21 10:15:26 2021 +0100

    CAMEL-16222: PooledExchangeFactory experiment
---
 .../org/apache/camel/component/beanstalk/BeanstalkConsumer.java   | 3 +--
 .../org/apache/camel/support/component/ApiConsumerHelper.java     | 8 ++++----
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git 
a/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkConsumer.java
 
b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkConsumer.java
index b652e9e..a4ae7db 100644
--- 
a/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkConsumer.java
+++ 
b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkConsumer.java
@@ -24,7 +24,6 @@ import com.surftools.BeanstalkClient.BeanstalkException;
 import com.surftools.BeanstalkClient.Client;
 import com.surftools.BeanstalkClient.Job;
 import org.apache.camel.Exchange;
-import org.apache.camel.ExchangePattern;
 import org.apache.camel.ExtendedExchange;
 import org.apache.camel.Processor;
 import org.apache.camel.RuntimeCamelException;
@@ -92,7 +91,7 @@ public class BeanstalkConsumer extends ScheduledPollConsumer {
                     LOG.debug(String.format("Received job ID %d (data length 
%d)", job.getJobId(), job.getData().length));
                 }
 
-                final Exchange exchange = 
getEndpoint().createExchange(ExchangePattern.InOnly);
+                final Exchange exchange = createExchange(true);
                 exchange.getIn().setHeader(Headers.JOB_ID, job.getJobId());
                 exchange.getIn().setBody(job.getData(), byte[].class);
 
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/component/ApiConsumerHelper.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/component/ApiConsumerHelper.java
index 8de5649..adaaa13 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/component/ApiConsumerHelper.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/component/ApiConsumerHelper.java
@@ -139,11 +139,10 @@ public final class ApiConsumerHelper {
             T extends DefaultConsumer & ResultInterceptor> void 
processResult(T consumer, Object methodResult, Object result)
                     throws Exception {
 
-        Exchange exchange = consumer.getEndpoint().createExchange();
-        exchange.getIn().setBody(result);
-
-        consumer.interceptResult(methodResult, exchange);
+        Exchange exchange = consumer.createExchange(false);
         try {
+            exchange.getIn().setBody(result);
+            consumer.interceptResult(methodResult, exchange);
             // send message to next processor in the route
             consumer.getProcessor().process(exchange);
         } finally {
@@ -152,6 +151,7 @@ public final class ApiConsumerHelper {
             if (exception != null) {
                 consumer.getExceptionHandler().handleException("Error 
processing exchange", exchange, exception);
             }
+            consumer.releaseExchange(exchange, false);
         }
     }
 }

Reply via email to