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

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


The following commit(s) were added to refs/heads/master by this push:
     new 4b6b02a  camel-http - Optimize to avoid type convertion that would do 
deep checking.
4b6b02a is described below

commit 4b6b02aa636d0051d41aac4b6e75f100cc15dde6
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Wed Feb 17 16:25:45 2021 +0100

    camel-http - Optimize to avoid type convertion that would do deep checking.
---
 .../org/apache/camel/component/http/HttpProducer.java | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git 
a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java
 
b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java
index 154debb..41d5205 100644
--- 
a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java
+++ 
b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java
@@ -616,12 +616,25 @@ public class HttpProducer extends DefaultProducer {
      * @throws CamelExchangeException is thrown if error creating RequestEntity
      */
     protected HttpEntity createRequestEntity(Exchange exchange) throws 
CamelExchangeException {
+        HttpEntity answer = null;
+
         Message in = exchange.getIn();
-        if (in.getBody() == null) {
-            return null;
+        Object body = in.getBody();
+        try {
+            if (body == null) {
+                return null;
+            // special optimized for using these 3 type converters for common 
message payload types
+            } else if (body instanceof byte[]) {
+                answer = HttpEntityConverter.toHttpEntity((byte[]) body, 
exchange);
+            } else if (body instanceof InputStream) {
+                answer = HttpEntityConverter.toHttpEntity((InputStream) body, 
exchange);
+            } else if (body instanceof String) {
+                answer = HttpEntityConverter.toHttpEntity((String) body, 
exchange);
+            }
+        } catch (Exception e) {
+            throw new CamelExchangeException("Error creating RequestEntity 
from message body", exchange, e);
         }
 
-        HttpEntity answer = in.getBody(HttpEntity.class);
         if (answer == null) {
             try {
                 Object data = in.getBody();

Reply via email to