@Override public void sendFault(Message message) { getExchange().sendFault(message); }
@Override public void sendFault(Message message) { getExchange().sendFault(message); }
@Override public void handleMessage(Exchange exchange) { HandlerRef handlerRef = null; try { for (HandlerRef ref : listHandlers()) { handlerRef = ref; if (_logger.isDebugEnabled()) { _logger.debug("Executing ExchangeHandler (" + ref + ") on message Exchange instance (" + System.identityHashCode(exchange) + ")."); } ref.getHandler().handleMessage(exchange); if (exchange.getState() == ExchangeState.FAULT) { // Exchange state has changed to FAULT. // Stop executing handlers.... break; } } } catch (HandlerException handlerEx) { StringBuilder errorMsg = new StringBuilder(handlerEx.getClass().getName() + " was thrown by handler(" + handlerRef.getName() + "): " + handlerEx.getMessage()); Throwable cause = handlerEx; while ((cause = cause.getCause()) != null) { errorMsg.append(" --- Caused by " + cause.getClass().getName() + ": " + cause.getMessage()); } _logger.error(errorMsg.toString()); _logger.debug("", handlerEx); Message faultMessage = exchange.createMessage().setContent(handlerEx); exchange.sendFault(faultMessage); } }
@Override public void handleMessage(Exchange exchange) { HandlerRef handlerRef = null; try { for (HandlerRef ref : listHandlers()) { handlerRef = ref; if (_logger.isDebugEnabled()) { _logger.debug("Executing ExchangeHandler (" + ref + ") on message Exchange instance (" + System.identityHashCode(exchange) + ")."); } ref.getHandler().handleMessage(exchange); if (exchange.getState() == ExchangeState.FAULT) { // Exchange state has changed to FAULT. // Stop executing handlers.... break; } } } catch (HandlerException handlerEx) { StringBuilder errorMsg = new StringBuilder(handlerEx.getClass().getName() + " was thrown by handler(" + handlerRef.getName() + "): " + handlerEx.getMessage()); Throwable cause = handlerEx; while ((cause = cause.getCause()) != null) { errorMsg.append(" --- Caused by " + cause.getClass().getName() + ": " + cause.getMessage()); } _logger.error(errorMsg.toString()); _logger.debug("", handlerEx); Message faultMessage = exchange.createMessage().setContent(handlerEx); exchange.sendFault(faultMessage); } }
@Test public void testNullSendFault() { Exchange exchange = new ExchangeImpl(_domain, _dispatch); try { exchange.sendFault(null); Assert.fail("Expected IllegalArgumentException."); } catch (IllegalArgumentException e) { boolean messageMatch = e.getMessage().contains("SWITCHYARD014019"); Assert.assertTrue(messageMatch); } }
@Override public void handleMessage(Exchange exchange) throws HandlerException { Message fault = exchange.createMessage(); fault.setContent(new Exception("testFaultTransformSequence")); exchange.sendFault(fault); } };
@Test public void testSendFaultOnNewExchange() { Exchange exchange = new ExchangeImpl(_domain, _dispatch); try { exchange.sendFault(exchange.createMessage()); Assert.fail("Sending a fault on a new exchange is not allowed"); } catch (IllegalStateException illEx) { return; } }
@Override public void handleMessage(final Exchange exchange) throws HandlerException { _messages.offer(exchange); if (_forwardInToOut) { exchange.send(exchange.getMessage().copy()); } else if (_forwardInToFault) { exchange.sendFault(exchange.createMessage()); } }
@Override public void handleMessage(final Exchange exchange) throws HandlerException { _messages.offer(exchange); if (_behavior == null || exchange.getContract().getProviderOperation().getExchangePattern().equals(ExchangePattern.IN_ONLY)) { return; } switch (_behavior) { case FORWARD_IN_TO_OUT : exchange.send(exchange.getMessage().copy()); break; case FORWARD_IN_TO_FAULT : exchange.sendFault(exchange.getMessage().copy()); break; case REPLY_WITH_OUT : exchange.send(exchange.createMessage().setContent(_replyContent)); break; case REPLY_WITH_FAULT : exchange.sendFault(exchange.createMessage().setContent(_replyContent)); break; } }
@Override public void handleMessage(final Exchange exchange) throws HandlerException { _messages.offer(exchange); if (_behavior == null || exchange.getContract().getProviderOperation().getExchangePattern().equals(ExchangePattern.IN_ONLY)) { return; } switch (_behavior) { case FORWARD_IN_TO_OUT : exchange.send(exchange.getMessage().copy()); break; case FORWARD_IN_TO_FAULT : exchange.sendFault(exchange.getMessage().copy()); break; case REPLY_WITH_OUT : exchange.send(exchange.createMessage().setContent(_replyContent)); break; case REPLY_WITH_FAULT : exchange.sendFault(exchange.createMessage().setContent(_replyContent)); break; } }
throw new HandlerException(e); switchyardExchange.sendFault(msg); } else if (camelFault instanceof Throwable) { throw new HandlerException(Throwable.class.cast(camelFault));
throw new HandlerException(e); switchyardExchange.sendFault(msg); } else if (camelFault instanceof Throwable) { throw new HandlerException(Throwable.class.cast(camelFault));
for (Class<?> expectedFault : invocation.getMethod().getExceptionTypes()) { if (expectedFault.isAssignableFrom(faultContent.getClass())) { exchange.sendFault(exchange.createMessage().setContent(faultContent)); return;
@Override public void handleMessage(final Exchange exchange) throws HandlerException { try { Object response =_implModel.injectExchange() ? _var.invoke(exchange) : _var.invoke(exchange.getMessage().getContent()); if (response != null) { Message message = exchange.createMessage().setContent(response); exchange.send(message); } } catch (final Exception e) { QName declaredFault = exchange.getContract().getProviderOperation().getFaultType(); if (declaredFault != null && QNameUtil.isJavaMessageType(declaredFault) && QNameUtil.toJavaMessageType(declaredFault).isAssignableFrom(e.getClass())) { Message msg = exchange.createMessage().setContent(e); exchange.sendFault(msg); } else { throw new HandlerException(e); } } }
@Override public void handleMessage(final Exchange exchange) throws HandlerException { try { Object response =_implModel.injectExchange() ? _var.invoke(exchange) : _var.invoke(exchange.getMessage().getContent()); if (response != null) { Message message = exchange.createMessage().setContent(response); exchange.send(message); } } catch (final Exception e) { QName declaredFault = exchange.getContract().getProviderOperation().getFaultType(); if (declaredFault != null && QNameUtil.isJavaMessageType(declaredFault) && QNameUtil.toJavaMessageType(declaredFault).isAssignableFrom(e.getClass())) { Message msg = exchange.createMessage().setContent(e); exchange.sendFault(msg); } else { throw new HandlerException(e); } } }
switchyardExchange.sendFault(msg); } else if (camelFault instanceof Throwable) { throw new HandlerException(Throwable.class.cast(camelFault)); } else if (camelFault instanceof Node) { Message msg = switchyardExchange.createMessage().setContent((Node)camelFault); switchyardExchange.sendFault(msg); } else { String faultMessage = (camelFault == null) ? null : camelFault.toString();
ex.getContext().mergeInto(replyMsg.getContext()); if (ExchangeState.FAULT.equals(ex.getState())) { exchange.sendFault(replyMsg); } else { exchange.send(replyMsg);
ex.getContext().mergeInto(replyMsg.getContext()); if (ExchangeState.FAULT.equals(ex.getState())) { exchange.sendFault(replyMsg); } else { exchange.send(replyMsg);