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 2023/06/14 17:52:11 UTC

[camel] branch camel-3.x updated: [CAMEL-18965]Camel-CXF: OnCompletion not working in case of Fault

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

ffang pushed a commit to branch camel-3.x
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-3.x by this push:
     new 0ead2029c21 [CAMEL-18965]Camel-CXF: OnCompletion not working in case of Fault
0ead2029c21 is described below

commit 0ead2029c21b5e043317cf90b0e6a1b3202d7849
Author: Freeman Fang <fr...@gmail.com>
AuthorDate: Wed Jun 7 17:13:53 2023 -0400

    [CAMEL-18965]Camel-CXF: OnCompletion not working in case of Fault
    
    (cherry picked from commit 57b3c9c9d965a166107e8745c75a256aa2c83cf7)
    (cherry picked from commit 40e65484e971ccc3ab46eb1cecbccf6c343f1c96)
---
 .../main/java/org/apache/camel/component/cxf/jaxrs/CxfRsConsumer.java  | 2 ++
 .../main/java/org/apache/camel/component/cxf/jaxws/CxfConsumer.java    | 3 ++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/components/camel-cxf/camel-cxf-rest/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsConsumer.java b/components/camel-cxf/camel-cxf-rest/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsConsumer.java
index 19a5aba385c..2f209360be5 100644
--- a/components/camel-cxf/camel-cxf-rest/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsConsumer.java
+++ b/components/camel-cxf/camel-cxf-rest/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsConsumer.java
@@ -56,6 +56,8 @@ public class CxfRsConsumer extends DefaultConsumer implements Suspendable {
         svrBean.getInInterceptors().add(new UnitOfWorkCloserInterceptor(Phase.POST_INVOKE, true));
         // close the UnitOfWork normally
         svrBean.getOutInterceptors().add(new UnitOfWorkCloserInterceptor());
+        // close the UnitOfWork in case of Fault
+        svrBean.getOutFaultInterceptors().add(new UnitOfWorkCloserInterceptor());
 
         Server server = svrBean.create();
 
diff --git a/components/camel-cxf/camel-cxf-soap/src/main/java/org/apache/camel/component/cxf/jaxws/CxfConsumer.java b/components/camel-cxf/camel-cxf-soap/src/main/java/org/apache/camel/component/cxf/jaxws/CxfConsumer.java
index d81bcebb997..83f8f88a2a5 100644
--- a/components/camel-cxf/camel-cxf-soap/src/main/java/org/apache/camel/component/cxf/jaxws/CxfConsumer.java
+++ b/components/camel-cxf/camel-cxf-soap/src/main/java/org/apache/camel/component/cxf/jaxws/CxfConsumer.java
@@ -91,7 +91,8 @@ public class CxfConsumer extends DefaultConsumer implements Suspendable {
         ret.getEndpoint().getInInterceptors().add(new UnitOfWorkCloserInterceptor(Phase.POST_INVOKE, true));
         // close the UnitOfWork normally
         ret.getEndpoint().getOutInterceptors().add(new UnitOfWorkCloserInterceptor());
-
+        // close the UnitOfWork in case of Fault
+        ret.getEndpoint().getOutFaultInterceptors().add(new UnitOfWorkCloserInterceptor());
         return ret;
     }