camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From davscl...@apache.org
Subject [1/2] camel git commit: CAMEL-9359: DefaultExchangeHolder should be less noisty in logging. Also update javadoc about headers/properties are only primitive/string/numbers.
Date Wed, 25 Nov 2015 13:33:43 GMT
Repository: camel
Updated Branches:
  refs/heads/camel-2.16.x b371be6ca -> f1d821293
  refs/heads/master 5091f938c -> 006b4594a


CAMEL-9359: DefaultExchangeHolder should be less noisty in logging. Also update javadoc about
headers/properties are only primitive/string/numbers.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/006b4594
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/006b4594
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/006b4594

Branch: refs/heads/master
Commit: 006b4594a7f1a621e8f6b3090bbb64544e2596ab
Parents: 5091f93
Author: Claus Ibsen <davsclaus@apache.org>
Authored: Wed Nov 25 14:33:09 2015 +0100
Committer: Claus Ibsen <davsclaus@apache.org>
Committed: Wed Nov 25 14:33:09 2015 +0100

----------------------------------------------------------------------
 .../camel/impl/DefaultExchangeHolder.java       | 56 ++++++++++----------
 1 file changed, 27 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/006b4594/camel-core/src/main/java/org/apache/camel/impl/DefaultExchangeHolder.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultExchangeHolder.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultExchangeHolder.java
index ea9713c..a066043 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultExchangeHolder.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultExchangeHolder.java
@@ -34,27 +34,31 @@ import org.slf4j.LoggerFactory;
 /**
  * Holder object for sending an exchange over a remote wire as a serialized object.
  * This is usually configured using the <tt>transferExchange=true</tt> option
on the endpoint.
- * <p/>
- * Note: Message body of type {@link File} or {@link WrappedFile} is <b>not</b>
supported and
+ * <br/>
+ * <b>Note:</b> Message body of type {@link File} or {@link WrappedFile} is <b>not</b>
supported and
  * a {@link RuntimeExchangeException} is thrown.
- * <p/>
+ * <br/>
  * As opposed to normal usage where only the body part of the exchange is transferred over
the wire,
  * this holder object serializes the following fields over the wire:
  * <ul>
  * <li>exchangeId</li>
  * <li>in body</li>
  * <li>out body</li>
- * <li>in headers</li>
- * <li>out headers</li>
  * <li>fault body </li>
- * <li>fault headers</li>
  * <li>exchange properties</li>
  * <li>exception</li>
  * </ul>
+ * And the following headers is transferred if their values are of primitive types, String
or Number based.
+ * <ul>
+ * <li>in headers</li>
+ * <li>out headers</li>
+ * <li>fault headers</li>
+ * </ul>
  * The body is serialized and stored as serialized bytes. The header and exchange properties
only include
- * primitive, and String types (and Exception types for exchange properties). Any other type
is skipped.
- * <p/>
- * Any object that is not serializable will be skipped and Camel will log this at WARN level.
+ * primitive, String, and Number types (and Exception types for exchange properties). Any
other type is skipped.
+ * <br/>
+ * Any message body object that is not serializable will be skipped and Camel will log this
at <tt>WARN</tt> level.
+ * And any message header values that is not a primitive value will be skipped and Camel
will log this at <tt>DEBUG</tt> level.
  *
  * @version 
  */
@@ -235,6 +239,10 @@ public class DefaultExchangeHolder implements Serializable {
         for (Map.Entry<String, Object> entry : map.entrySet()) {
 
             // silently skip any values which is null
+            if (entry.getValue() == null) {
+                continue;
+            }
+
             Object value = getValidHeaderValue(entry.getKey(), entry.getValue());
             if (value != null) {
                 Serializable converted = exchange.getContext().getTypeConverter().convertTo(Serializable.class,
exchange, value);
@@ -260,6 +268,10 @@ public class DefaultExchangeHolder implements Serializable {
         for (Map.Entry<String, Object> entry : map.entrySet()) {
 
             // silently skip any values which is null
+            if (entry.getValue() == null) {
+                continue;
+            }
+
             Object value = getValidExchangePropertyValue(entry.getKey(), entry.getValue());
             if (value != null) {
                 Serializable converted = exchange.getContext().getTypeConverter().convertTo(Serializable.class,
exchange, value);
@@ -347,30 +359,16 @@ public class DefaultExchangeHolder implements Serializable {
     }
 
     private static void logInvalidHeaderValue(String type, String key, Object value) {
-        if (key.startsWith("Camel")) {
-            // log Camel at DEBUG level
-            if (LOG.isDebugEnabled()) {
-                LOG.debug("Exchange {} containing key: {} with object: {} of type: {} is
not valid header type, it will be excluded by the holder."
-                          , new Object[]{type, key, value, ObjectHelper.classCanonicalName(value)});
-            }
-        } else {
-            // log regular at WARN level
-            LOG.warn("Exchange {} containing key: {} with object: {} of type: {} is not valid
header type, it will be excluded by the holder."
-                     , new Object[]{type, key, value, ObjectHelper.classCanonicalName(value)});
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Exchange {} containing key: {} with object: {} of type: {} is not
valid header type, it will be excluded by the holder."
+                      , new Object[]{type, key, value, ObjectHelper.classCanonicalName(value)});
         }
     }
 
     private static void logInvalidExchangePropertyValue(String type, String key, Object value)
{
-        if (key.startsWith("Camel")) {
-            // log Camel at DEBUG level
-            if (LOG.isDebugEnabled()) {
-                LOG.debug("Exchange {} containing key: {} with object: {} of type: {} is
not valid exchange property type, it will be excluded by the holder."
-                          , new Object[]{type, key, value, ObjectHelper.classCanonicalName(value)});
-            }
-        } else {
-            // log regular at WARN level
-            LOG.warn("Exchange {} containing key: {} with object: {} of type: {} is not valid
exchange property type, it will be excluded by the holder."
-                     , new Object[]{type, key, value, ObjectHelper.classCanonicalName(value)});
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Exchange {} containing key: {} with object: {} of type: {} is not
valid exchange property type, it will be excluded by the holder."
+                      , new Object[]{type, key, value, ObjectHelper.classCanonicalName(value)});
         }
     }
 


Mime
View raw message