@Test public void testToString() { ErrorMessage em = new ErrorMessage(new RuntimeException("foo")); String emString = em.toString(); assertThat(emString, not(containsString("original"))); em = new ErrorMessage(new RuntimeException("foo"), new GenericMessage<>("bar")); emString = em.toString(); assertThat(emString, containsString("original")); assertThat(emString, containsString(em.getOriginalMessage().toString())); }
@Test public void enhancedRecoverer() { QueueChannel channel = new QueueChannel(); ErrorMessageSendingRecoverer recoverer = new ErrorMessageSendingRecoverer(channel); recoverer.publish(new GenericMessage<>("foo"), new GenericMessage<>("bar"), new RuntimeException("baz")); Message<?> error = channel.receive(0); assertThat(error, instanceOf(ErrorMessage.class)); assertThat(error.getPayload(), instanceOf(MessagingException.class)); MessagingException payload = (MessagingException) error.getPayload(); assertThat(payload.getCause(), instanceOf(RuntimeException.class)); assertThat(payload.getCause().getMessage(), equalTo("baz")); assertThat(payload.getFailedMessage().getPayload(), equalTo("bar")); assertThat(((ErrorMessage) error).getOriginalMessage().getPayload(), equalTo("foo")); }
/** * MessagingTemplate sets the errorChannel to the replyChannel so it gets any async * exceptions via the default {@link MessagePublishingErrorHandler}. */ @Test public void testReplaceError() { MessagingTemplate template = new MessagingTemplate(); template.setDefaultDestination(this.inputPolled); Message<?> reply = template.sendAndReceive(new GenericMessage<String>("bar")); assertNotNull(reply); assertTrue(reply instanceof ErrorMessage); assertNotNull(((ErrorMessage) reply).getOriginalMessage()); assertThat(reply.getPayload(), not(instanceOf(MessagingExceptionWrapper.class))); }
assertEquals(errorMessage.getHeaders(), errorMessageResult.getHeaders()); assertThat(errorMessageResult, instanceOf(ErrorMessage.class)); assertEquals(errorMessage.getOriginalMessage(), ((ErrorMessage) errorMessageResult).getOriginalMessage()); assertEquals(errorMessage.getPayload().getMessage(), ((ErrorMessage) errorMessageResult).getPayload().getMessage());
MessageHeaders headers = received.getHeaders(); assertThat(headers.get(KafkaHeaders.RAW_DATA)).isNotNull(); received = ((ErrorMessage) received).getOriginalMessage(); assertThat(received).isNotNull(); headers = received.getHeaders();
MessageHeaders headers = received.getHeaders(); assertThat(headers.get(KafkaHeaders.RAW_DATA)).isNotNull(); received = ((ErrorMessage) received).getOriginalMessage(); assertThat(received).isNotNull(); headers = received.getHeaders();