You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ff...@apache.org on 2019/05/27 17:51:38 UTC
[camel] branch camel-2.22.x updated: [CAMEL-13376]camel-cxf -
failure processor for custom exception handling cannot get the original
message
This is an automated email from the ASF dual-hosted git repository.
ffang pushed a commit to branch camel-2.22.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-2.22.x by this push:
new a9f3c7f [CAMEL-13376]camel-cxf - failure processor for custom exception handling cannot get the original message
a9f3c7f is described below
commit a9f3c7ffea14d338b333e1138505040f5a45c1f1
Author: Freeman Fang <fr...@gmail.com>
AuthorDate: Mon May 27 13:49:49 2019 -0400
[CAMEL-13376]camel-cxf - failure processor for custom exception handling cannot get the original message
(cherry picked from commit b2092741930ce76ea2561a8bb076272ca4d97898)
(cherry picked from commit 8f9f6e8ebbda3e4b6bfc9d1ca2a290b94678dd8e)
(cherry picked from commit a7b1103915404579a1dfe906b2eb876bd86d2816)
---
.../apache/camel/component/cxf/converter/CachedCxfPayload.java | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CachedCxfPayload.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CachedCxfPayload.java
index d82fcac..427cb99 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CachedCxfPayload.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CachedCxfPayload.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.cxf.converter;
import java.io.IOException;
import java.io.OutputStream;
+import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.ListIterator;
import java.util.Map;
@@ -92,6 +93,14 @@ public class CachedCxfPayload<T> extends CxfPayload<T> implements StreamCache {
li.set(document);
}
}
+ try {
+ Field bodyField = getClass().getSuperclass().getDeclaredField("body");
+ bodyField.setAccessible(true);
+ bodyField.set(orig, getBodySources());
+
+ } catch (NoSuchFieldException | IllegalAccessException e) {
+ LOG.debug("can't use reflection way to set body in CxfPayload", e);
+ }
}
private CachedCxfPayload(CachedCxfPayload<T> orig, Exchange exchange) throws IOException {