[jira] [Updated] (CAMEL-8042) CxfClientCallBack handleException does not honour exception
[ https://issues.apache.org/jira/browse/CAMEL-8042?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] John McKeogh updated CAMEL-8042: Thank you for your Email. I am currently out of the office. I will be returning on Monday 13th March. > CxfClientCallBack handleException does not honour exception > --- > > Key: CAMEL-8042 > URL: https://issues.apache.org/jira/browse/CAMEL-8042 > Project: Camel > Issue Type: Bug > Components: camel-cxf >Affects Versions: 2.11.2, 2.14.0 > Environment: Windows >Reporter: John McKeogh >Assignee: Willem Jiang > Attachments: camel-8042.tar.gz, greeter-corba.wsdl > > > Hi, > Since Camel 2.11.2, The cxfClientCallBack doesn't seem to be honouring the > exception that it is passed in. > Here is a copy of the HandleException funciton before and after 11.2 > 2.11.1 >public void handleException(Map ctx, Throwable > ex) { > try { > super.handleException(ctx, ex); > camelExchange.setException(ex); > } finally { > // copy > 2.11.2 > public void handleException(Map ctx, Throwable ex) { > try { > super.handleException(ctx, ex); > // need to call the conduitSelector complete method to enable the > fail over feature > ConduitSelector conduitSelector = > cxfExchange.get(ConduitSelector.class); > if (conduitSelector != null) { > conduitSelector.complete(cxfExchange); > ex = cxfExchange.getOutMessage().getContent(Exception.class); > if (ex == null && cxfExchange.getInMessage() != null) { > ex = > cxfExchange.getInMessage().getContent(Exception.class); > } > if (ex != null) { > camelExchange.setException(ex); > } > } else { > camelExchange.setException(ex); > } > } finally { > So for our testcase where we have a cxf client calling through camel to a > Corba web service, the exception that the webservice is passing back to camel > is no longer honoured. > I believe this change was introduced by the following jira: > https://issues.apache.org/jira/browse/CAMEL-6609 > I have attached the wsdl of the corba web-service. > In the service we are calling PingMe expecting to get back a > PingMeFault_Exception. The exception is set in the cxf corba binding and > reached the exception handler in camel. But the exception is no longer being > sent back to the client. Instead a generic SoapFaultException is reaching the > client. > Cheers, > John. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CAMEL-8042) CxfClientCallBack handleException does not honour exception
[ https://issues.apache.org/jira/browse/CAMEL-8042?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Willem Jiang updated CAMEL-8042: Fix Version/s: (was: 2.14.3) 2.14.4 > CxfClientCallBack handleException does not honour exception > --- > > Key: CAMEL-8042 > URL: https://issues.apache.org/jira/browse/CAMEL-8042 > Project: Camel > Issue Type: Bug > Components: camel-cxf >Affects Versions: 2.11.2, 2.14.0 > Environment: Windows >Reporter: John McKeogh >Assignee: Willem Jiang > Fix For: 2.15.3, 2.14.4 > > Attachments: camel-8042.tar.gz, greeter-corba.wsdl > > > Hi, > Since Camel 2.11.2, The cxfClientCallBack doesn't seem to be honouring the > exception that it is passed in. > Here is a copy of the HandleException funciton before and after 11.2 > 2.11.1 >public void handleException(Map ctx, Throwable > ex) { > try { > super.handleException(ctx, ex); > camelExchange.setException(ex); > } finally { > // copy > 2.11.2 > public void handleException(Map ctx, Throwable ex) { > try { > super.handleException(ctx, ex); > // need to call the conduitSelector complete method to enable the > fail over feature > ConduitSelector conduitSelector = > cxfExchange.get(ConduitSelector.class); > if (conduitSelector != null) { > conduitSelector.complete(cxfExchange); > ex = cxfExchange.getOutMessage().getContent(Exception.class); > if (ex == null && cxfExchange.getInMessage() != null) { > ex = > cxfExchange.getInMessage().getContent(Exception.class); > } > if (ex != null) { > camelExchange.setException(ex); > } > } else { > camelExchange.setException(ex); > } > } finally { > So for our testcase where we have a cxf client calling through camel to a > Corba web service, the exception that the webservice is passing back to camel > is no longer honoured. > I believe this change was introduced by the following jira: > https://issues.apache.org/jira/browse/CAMEL-6609 > I have attached the wsdl of the corba web-service. > In the service we are calling PingMe expecting to get back a > PingMeFault_Exception. The exception is set in the cxf corba binding and > reached the exception handler in camel. But the exception is no longer being > sent back to the client. Instead a generic SoapFaultException is reaching the > client. > Cheers, > John. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CAMEL-8042) CxfClientCallBack handleException does not honour exception
[ https://issues.apache.org/jira/browse/CAMEL-8042?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Willem Jiang updated CAMEL-8042: Fix Version/s: (was: 2.15.2) 2.15.3 > CxfClientCallBack handleException does not honour exception > --- > > Key: CAMEL-8042 > URL: https://issues.apache.org/jira/browse/CAMEL-8042 > Project: Camel > Issue Type: Bug > Components: camel-cxf >Affects Versions: 2.11.2, 2.14.0 > Environment: Windows >Reporter: John McKeogh >Assignee: Willem Jiang > Fix For: 2.14.3, 2.15.3 > > Attachments: camel-8042.tar.gz, greeter-corba.wsdl > > > Hi, > Since Camel 2.11.2, The cxfClientCallBack doesn't seem to be honouring the > exception that it is passed in. > Here is a copy of the HandleException funciton before and after 11.2 > 2.11.1 >public void handleException(Map ctx, Throwable > ex) { > try { > super.handleException(ctx, ex); > camelExchange.setException(ex); > } finally { > // copy > 2.11.2 > public void handleException(Map ctx, Throwable ex) { > try { > super.handleException(ctx, ex); > // need to call the conduitSelector complete method to enable the > fail over feature > ConduitSelector conduitSelector = > cxfExchange.get(ConduitSelector.class); > if (conduitSelector != null) { > conduitSelector.complete(cxfExchange); > ex = cxfExchange.getOutMessage().getContent(Exception.class); > if (ex == null && cxfExchange.getInMessage() != null) { > ex = > cxfExchange.getInMessage().getContent(Exception.class); > } > if (ex != null) { > camelExchange.setException(ex); > } > } else { > camelExchange.setException(ex); > } > } finally { > So for our testcase where we have a cxf client calling through camel to a > Corba web service, the exception that the webservice is passing back to camel > is no longer honoured. > I believe this change was introduced by the following jira: > https://issues.apache.org/jira/browse/CAMEL-6609 > I have attached the wsdl of the corba web-service. > In the service we are calling PingMe expecting to get back a > PingMeFault_Exception. The exception is set in the cxf corba binding and > reached the exception handler in camel. But the exception is no longer being > sent back to the client. Instead a generic SoapFaultException is reaching the > client. > Cheers, > John. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CAMEL-8042) CxfClientCallBack handleException does not honour exception
[ https://issues.apache.org/jira/browse/CAMEL-8042?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Claus Ibsen updated CAMEL-8042: --- Fix Version/s: (was: 2.15.1) 2.15.2 > CxfClientCallBack handleException does not honour exception > --- > > Key: CAMEL-8042 > URL: https://issues.apache.org/jira/browse/CAMEL-8042 > Project: Camel > Issue Type: Bug > Components: camel-cxf >Affects Versions: 2.11.2, 2.14.0 > Environment: Windows >Reporter: John McKeogh >Assignee: Willem Jiang > Fix For: 2.14.3, 2.15.2 > > Attachments: camel-8042.tar.gz, greeter-corba.wsdl > > > Hi, > Since Camel 2.11.2, The cxfClientCallBack doesn't seem to be honouring the > exception that it is passed in. > Here is a copy of the HandleException funciton before and after 11.2 > 2.11.1 >public void handleException(Map ctx, Throwable > ex) { > try { > super.handleException(ctx, ex); > camelExchange.setException(ex); > } finally { > // copy > 2.11.2 > public void handleException(Map ctx, Throwable ex) { > try { > super.handleException(ctx, ex); > // need to call the conduitSelector complete method to enable the > fail over feature > ConduitSelector conduitSelector = > cxfExchange.get(ConduitSelector.class); > if (conduitSelector != null) { > conduitSelector.complete(cxfExchange); > ex = cxfExchange.getOutMessage().getContent(Exception.class); > if (ex == null && cxfExchange.getInMessage() != null) { > ex = > cxfExchange.getInMessage().getContent(Exception.class); > } > if (ex != null) { > camelExchange.setException(ex); > } > } else { > camelExchange.setException(ex); > } > } finally { > So for our testcase where we have a cxf client calling through camel to a > Corba web service, the exception that the webservice is passing back to camel > is no longer honoured. > I believe this change was introduced by the following jira: > https://issues.apache.org/jira/browse/CAMEL-6609 > I have attached the wsdl of the corba web-service. > In the service we are calling PingMe expecting to get back a > PingMeFault_Exception. The exception is set in the cxf corba binding and > reached the exception handler in camel. But the exception is no longer being > sent back to the client. Instead a generic SoapFaultException is reaching the > client. > Cheers, > John. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CAMEL-8042) CxfClientCallBack handleException does not honour exception
[ https://issues.apache.org/jira/browse/CAMEL-8042?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Claus Ibsen updated CAMEL-8042: --- Fix Version/s: (was: 2.14.2) (was: 2.15.0) 2.15.1 2.14.3 > CxfClientCallBack handleException does not honour exception > --- > > Key: CAMEL-8042 > URL: https://issues.apache.org/jira/browse/CAMEL-8042 > Project: Camel > Issue Type: Bug > Components: camel-cxf >Affects Versions: 2.11.2, 2.14.0 > Environment: Windows >Reporter: John McKeogh >Assignee: Willem Jiang > Fix For: 2.14.3, 2.15.1 > > Attachments: camel-8042.tar.gz, greeter-corba.wsdl > > > Hi, > Since Camel 2.11.2, The cxfClientCallBack doesn't seem to be honouring the > exception that it is passed in. > Here is a copy of the HandleException funciton before and after 11.2 > 2.11.1 >public void handleException(Map ctx, Throwable > ex) { > try { > super.handleException(ctx, ex); > camelExchange.setException(ex); > } finally { > // copy > 2.11.2 > public void handleException(Map ctx, Throwable ex) { > try { > super.handleException(ctx, ex); > // need to call the conduitSelector complete method to enable the > fail over feature > ConduitSelector conduitSelector = > cxfExchange.get(ConduitSelector.class); > if (conduitSelector != null) { > conduitSelector.complete(cxfExchange); > ex = cxfExchange.getOutMessage().getContent(Exception.class); > if (ex == null && cxfExchange.getInMessage() != null) { > ex = > cxfExchange.getInMessage().getContent(Exception.class); > } > if (ex != null) { > camelExchange.setException(ex); > } > } else { > camelExchange.setException(ex); > } > } finally { > So for our testcase where we have a cxf client calling through camel to a > Corba web service, the exception that the webservice is passing back to camel > is no longer honoured. > I believe this change was introduced by the following jira: > https://issues.apache.org/jira/browse/CAMEL-6609 > I have attached the wsdl of the corba web-service. > In the service we are calling PingMe expecting to get back a > PingMeFault_Exception. The exception is set in the cxf corba binding and > reached the exception handler in camel. But the exception is no longer being > sent back to the client. Instead a generic SoapFaultException is reaching the > client. > Cheers, > John. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CAMEL-8042) CxfClientCallBack handleException does not honour exception
[ https://issues.apache.org/jira/browse/CAMEL-8042?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Claus Ibsen updated CAMEL-8042: --- Fix Version/s: 2.15.0 > CxfClientCallBack handleException does not honour exception > --- > > Key: CAMEL-8042 > URL: https://issues.apache.org/jira/browse/CAMEL-8042 > Project: Camel > Issue Type: Bug > Components: camel-cxf >Affects Versions: 2.11.2, 2.14.0 > Environment: Windows >Reporter: John McKeogh >Assignee: Willem Jiang > Fix For: 2.14.2, 2.15.0 > > Attachments: camel-8042.tar.gz, greeter-corba.wsdl > > > Hi, > Since Camel 2.11.2, The cxfClientCallBack doesn't seem to be honouring the > exception that it is passed in. > Here is a copy of the HandleException funciton before and after 11.2 > 2.11.1 >public void handleException(Map ctx, Throwable > ex) { > try { > super.handleException(ctx, ex); > camelExchange.setException(ex); > } finally { > // copy > 2.11.2 > public void handleException(Map ctx, Throwable ex) { > try { > super.handleException(ctx, ex); > // need to call the conduitSelector complete method to enable the > fail over feature > ConduitSelector conduitSelector = > cxfExchange.get(ConduitSelector.class); > if (conduitSelector != null) { > conduitSelector.complete(cxfExchange); > ex = cxfExchange.getOutMessage().getContent(Exception.class); > if (ex == null && cxfExchange.getInMessage() != null) { > ex = > cxfExchange.getInMessage().getContent(Exception.class); > } > if (ex != null) { > camelExchange.setException(ex); > } > } else { > camelExchange.setException(ex); > } > } finally { > So for our testcase where we have a cxf client calling through camel to a > Corba web service, the exception that the webservice is passing back to camel > is no longer honoured. > I believe this change was introduced by the following jira: > https://issues.apache.org/jira/browse/CAMEL-6609 > I have attached the wsdl of the corba web-service. > In the service we are calling PingMe expecting to get back a > PingMeFault_Exception. The exception is set in the cxf corba binding and > reached the exception handler in camel. But the exception is no longer being > sent back to the client. Instead a generic SoapFaultException is reaching the > client. > Cheers, > John. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CAMEL-8042) CxfClientCallBack handleException does not honour exception
[ https://issues.apache.org/jira/browse/CAMEL-8042?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Keith Halligan updated CAMEL-8042: -- Attachment: camel-8042.tar.gz Here's the testcase (maven based) that's using the Sun CORBA ORB backend with a soap client talking to the corba server via camel. Prior to 2.11.1 the User exception thrown in the PingMe() method, was being propagated back into the client side, since then that exception type gets lost and the generic SOAPFault is seen instead. Here's a patch that's the starting of a fix for things here, it's just a workaround for the CORBA things for now. {code} diff --git a/components/camel-cxf/pom.xml b/components/camel-cxf/pom.xml index 3cc32a8..f18 100644 --- a/components/camel-cxf/pom.xml +++ b/components/camel-cxf/pom.xml @@ -208,6 +208,12 @@ + org.apache.cxf + cxf-rt-bindings-corba + ${cxf-version} + + + org.apache.camel camel-jetty test diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfClientCallback.java b/components/camel -cxf/src/main/java/org/apache/camel/component/cxf/CxfClientCallback.java index bcef9cf..3519d26 100644 --- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfClientCallback.java +++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfClientCallback.java @@ -20,6 +20,7 @@ import java.util.Map; import org.apache.camel.AsyncCallback; import org.apache.camel.Exchange; +import org.apache.cxf.binding.corba.CorbaConduit; import org.apache.cxf.endpoint.ClientCallback; import org.apache.cxf.endpoint.ConduitSelector; import org.apache.cxf.service.model.BindingOperationInfo; @@ -71,7 +72,8 @@ public class CxfClientCallback extends ClientCallback { super.handleException(ctx, ex); // need to call the conduitSelector complete method to enable the fail over feature ConduitSelector conduitSelector = cxfExchange.get(ConduitSelector.class); -if (conduitSelector != null) { +if (conduitSelector != null && +! (conduitSelector.selectConduit(cxfExchange.getOutMessage()) instanceof CorbaConduit)) { conduitSelector.complete(cxfExchange); ex = cxfExchange.getOutMessage().getContent(Exception.class); if (ex == null && cxfExchange.getInMessage() != null) { {code} > CxfClientCallBack handleException does not honour exception > --- > > Key: CAMEL-8042 > URL: https://issues.apache.org/jira/browse/CAMEL-8042 > Project: Camel > Issue Type: Bug > Components: camel-cxf >Affects Versions: 2.11.2, 2.14.0 > Environment: Windows >Reporter: John McKeogh >Assignee: Willem Jiang > Fix For: 2.14.2 > > Attachments: camel-8042.tar.gz, greeter-corba.wsdl > > > Hi, > Since Camel 2.11.2, The cxfClientCallBack doesn't seem to be honouring the > exception that it is passed in. > Here is a copy of the HandleException funciton before and after 11.2 > 2.11.1 >public void handleException(Map ctx, Throwable > ex) { > try { > super.handleException(ctx, ex); > camelExchange.setException(ex); > } finally { > // copy > 2.11.2 > public void handleException(Map ctx, Throwable ex) { > try { > super.handleException(ctx, ex); > // need to call the conduitSelector complete method to enable the > fail over feature > ConduitSelector conduitSelector = > cxfExchange.get(ConduitSelector.class); > if (conduitSelector != null) { > conduitSelector.complete(cxfExchange); > ex = cxfExchange.getOutMessage().getContent(Exception.class); > if (ex == null && cxfExchange.getInMessage() != null) { > ex = > cxfExchange.getInMessage().getContent(Exception.class); > } > if (ex != null) { > camelExchange.setException(ex); > } > } else { > camelExchange.setException(ex); > } > } finally { > So for our testcase where we have a cxf client calling through camel to a > Corba web service, the exception that the webservice is passing back to camel > is no longer honoured. > I believe this change was introduced by the following jira: > https://issues.apache.org/jira/browse/CAMEL-6609 > I have attached the wsdl of the corba web-service. > In the service we are calling PingMe expecting to get back a > PingMeFault_Exception. The exception is set in the cxf corba binding and > reached the exception handler in camel. But the exception is no longer being > sent back to the client. Instea
[jira] [Updated] (CAMEL-8042) CxfClientCallBack handleException does not honour exception
[ https://issues.apache.org/jira/browse/CAMEL-8042?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Willem Jiang updated CAMEL-8042: Fix Version/s: (was: 2.14.1) 2.14.2 > CxfClientCallBack handleException does not honour exception > --- > > Key: CAMEL-8042 > URL: https://issues.apache.org/jira/browse/CAMEL-8042 > Project: Camel > Issue Type: Bug > Components: camel-cxf >Affects Versions: 2.11.2, 2.14.0 > Environment: Windows >Reporter: John McKeogh >Assignee: Willem Jiang > Fix For: 2.14.2 > > Attachments: greeter-corba.wsdl > > > Hi, > Since Camel 2.11.2, The cxfClientCallBack doesn't seem to be honouring the > exception that it is passed in. > Here is a copy of the HandleException funciton before and after 11.2 > 2.11.1 >public void handleException(Map ctx, Throwable > ex) { > try { > super.handleException(ctx, ex); > camelExchange.setException(ex); > } finally { > // copy > 2.11.2 > public void handleException(Map ctx, Throwable ex) { > try { > super.handleException(ctx, ex); > // need to call the conduitSelector complete method to enable the > fail over feature > ConduitSelector conduitSelector = > cxfExchange.get(ConduitSelector.class); > if (conduitSelector != null) { > conduitSelector.complete(cxfExchange); > ex = cxfExchange.getOutMessage().getContent(Exception.class); > if (ex == null && cxfExchange.getInMessage() != null) { > ex = > cxfExchange.getInMessage().getContent(Exception.class); > } > if (ex != null) { > camelExchange.setException(ex); > } > } else { > camelExchange.setException(ex); > } > } finally { > So for our testcase where we have a cxf client calling through camel to a > Corba web service, the exception that the webservice is passing back to camel > is no longer honoured. > I believe this change was introduced by the following jira: > https://issues.apache.org/jira/browse/CAMEL-6609 > I have attached the wsdl of the corba web-service. > In the service we are calling PingMe expecting to get back a > PingMeFault_Exception. The exception is set in the cxf corba binding and > reached the exception handler in camel. But the exception is no longer being > sent back to the client. Instead a generic SoapFaultException is reaching the > client. > Cheers, > John. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CAMEL-8042) CxfClientCallBack handleException does not honour exception
[ https://issues.apache.org/jira/browse/CAMEL-8042?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] John McKeogh updated CAMEL-8042: Attachment: greeter-corba.wsdl > CxfClientCallBack handleException does not honour exception > --- > > Key: CAMEL-8042 > URL: https://issues.apache.org/jira/browse/CAMEL-8042 > Project: Camel > Issue Type: Bug > Components: camel-cxf >Affects Versions: 2.11.2, 2.14.0 > Environment: Windows >Reporter: John McKeogh > Fix For: 2.14.1 > > Attachments: greeter-corba.wsdl > > > Hi, > Since Camel 2.11.2, The cxfClientCallBack doesn't seem to be honouring the > exception that it is passed in. > Here is a copy of the HandleException funciton before and after 11.2 > 2.11.1 >public void handleException(Map ctx, Throwable > ex) { > try { > super.handleException(ctx, ex); > camelExchange.setException(ex); > } finally { > // copy > 2.11.2 > public void handleException(Map ctx, Throwable ex) { > try { > super.handleException(ctx, ex); > // need to call the conduitSelector complete method to enable the > fail over feature > ConduitSelector conduitSelector = > cxfExchange.get(ConduitSelector.class); > if (conduitSelector != null) { > conduitSelector.complete(cxfExchange); > ex = cxfExchange.getOutMessage().getContent(Exception.class); > if (ex == null && cxfExchange.getInMessage() != null) { > ex = > cxfExchange.getInMessage().getContent(Exception.class); > } > if (ex != null) { > camelExchange.setException(ex); > } > } else { > camelExchange.setException(ex); > } > } finally { > So for our testcase where we have a cxf client calling through camel to a > Corba web service, the exception that the webservice is passing back to camel > is no longer honoured. > I believe this change was introduced by the following jira: > https://issues.apache.org/jira/browse/CAMEL-6609 > I have attached the wsdl of the corba web-service. > In the service we are calling PingMe expecting to get back a > PingMeFault_Exception. The exception is set in the cxf corba binding and > reached the exception handler in camel. But the exception is no longer being > sent back to the client. Instead a generic SoapFaultException is reaching the > client. > Cheers, > John. -- This message was sent by Atlassian JIRA (v6.3.4#6332)