protected Message createJmsMessage(Exchange exchange, org.apache.camel.Message camelMessage, Session session, CamelContext context) throws JMSException { Message answer = createJmsMessage(exchange, camelMessage.getBody(), camelMessage.getHeaders(), session, context); // special for transferFault boolean isFault = camelMessage.isFault(); if (answer != null && isFault && endpoint != null && endpoint.isTransferFault()) { answer.setBooleanProperty(JmsConstants.JMS_TRANSFER_FAULT, true); } return answer; }
if (camelExchange.isFailed()) { org.apache.camel.Message camelMsg = camelExchange.hasOut() ? camelExchange.getOut() : camelExchange.getIn(); if (camelMsg.isFault()) { t = camelMsg.getBody(Throwable.class); } else {
public void testFault(String endpoint) throws InterruptedException { mockOutput.expectedMessageCount(0); Exchange result = producerTemplate.request(endpoint, exchange -> exchange.getIn().setBody("blah")); assertEquals("failed", result.getOut().getBody()); assertTrue(result.getOut().isFault()); mockOutput.assertIsSatisfied(); }
Exchange outExchange = getCamelTemplate().send(getCamelEndpointUri(), inExchange); org.apache.camel.Message camelMsg = outExchange.hasOut() ? outExchange.getOut() : outExchange.getIn(); if (camelMsg.isFault()) { result = true;
public void onFailure(Exchange exchange) { MessageExchange me = JbiBinding.getMessageExchange(exchange); try { if (exchange.hasOut() && exchange.getOut().isFault()) { Fault fault = me.createFault(); binding.copyFromCamelToJbi(exchange.getOut(), fault); if (isFaultCapable(me)) { me.setFault(fault); doSend(me); } else { // MessageExchange is not capable of conveying faults -- sending the information as an error instead fail(me, new FaultException("Fault occured for " + exchange.getPattern() + " exchange", me, fault)); } } else { fail(me, binding.extractException(exchange)); } } catch (MessagingException e) { logger.warn("Unable to send JBI MessageExchange after successful Camel route invocation: {}", me, e); } } }
setFault(that.isFault());
public void copyFrom(org.apache.camel.Message that) { // only do a deep copy if we need to (yes when that is not a mail message, or if the mapMailMessage is true) boolean needCopy = !(that instanceof MailMessage) || (((MailMessage) that).mapMailMessage); if (needCopy) { super.copyFrom(that); } else { // no deep copy needed, but copy message id setMessageId(that.getMessageId()); setFault(that.isFault()); } if (that instanceof MailMessage) { MailMessage mailMessage = (MailMessage) that; this.originalMailMessage = mailMessage.originalMailMessage; this.mailMessage = mailMessage.mailMessage; this.mapMailMessage = mailMessage.mapMailMessage; } // cover over exchange if none has been assigned if (getExchange() == null) { setExchange(that.getExchange()); } }
if (camelExchange.hasOut() && bindingData.getMessage().isFault()) {
if (camelExchange.hasOut() && bindingData.getMessage().isFault()) {
if (msg.isFault()) {
if (camelExchange.hasOut() && camelExchange.getOut().isFault()) {