Example usage for org.springframework.messaging MessageHeaders ERROR_CHANNEL

List of usage examples for org.springframework.messaging MessageHeaders ERROR_CHANNEL

Introduction

In this page you can find the example usage for org.springframework.messaging MessageHeaders ERROR_CHANNEL.

Prototype

String ERROR_CHANNEL

To view the source code for org.springframework.messaging MessageHeaders ERROR_CHANNEL.

Click Source Link

Document

The key for the message error channel.

Usage

From source file:org.springframework.kafka.support.AbstractKafkaHeaderMapper.java

protected boolean matches(String header, Object value) {
    if (matches(header)) {
        if ((header.equals(MessageHeaders.REPLY_CHANNEL) || header.equals(MessageHeaders.ERROR_CHANNEL))
                && !(value instanceof String)) {
            if (this.logger.isDebugEnabled()) {
                this.logger.debug("Cannot map " + header + " when type is [" + value.getClass()
                        + "]; it must be a String");
            }//from  w ww  .ja  v a  2s . c  om
            return false;
        }
        return true;
    }
    return false;
}

From source file:org.springframework.messaging.core.GenericMessagingTemplate.java

@Override
@Nullable/*from   w  ww.jav a 2  s.co  m*/
protected final Message<?> doSendAndReceive(MessageChannel channel, Message<?> requestMessage) {
    Assert.notNull(channel, "'channel' is required");
    Object originalReplyChannelHeader = requestMessage.getHeaders().getReplyChannel();
    Object originalErrorChannelHeader = requestMessage.getHeaders().getErrorChannel();

    long sendTimeout = sendTimeout(requestMessage);
    long receiveTimeout = receiveTimeout(requestMessage);

    TemporaryReplyChannel tempReplyChannel = new TemporaryReplyChannel(this.throwExceptionOnLateReply);
    requestMessage = MessageBuilder.fromMessage(requestMessage).setReplyChannel(tempReplyChannel)
            .setHeader(this.sendTimeoutHeader, null).setHeader(this.receiveTimeoutHeader, null)
            .setErrorChannel(tempReplyChannel).build();

    try {
        doSend(channel, requestMessage, sendTimeout);
    } catch (RuntimeException ex) {
        tempReplyChannel.setSendFailed(true);
        throw ex;
    }

    Message<?> replyMessage = this.doReceive(tempReplyChannel, receiveTimeout);
    if (replyMessage != null) {
        replyMessage = MessageBuilder.fromMessage(replyMessage)
                .setHeader(MessageHeaders.REPLY_CHANNEL, originalReplyChannelHeader)
                .setHeader(MessageHeaders.ERROR_CHANNEL, originalErrorChannelHeader).build();
    }

    return replyMessage;
}

From source file:org.springframework.messaging.support.MessageHeaderAccessor.java

protected void verifyType(String headerName, Object headerValue) {
    if (headerName != null && headerValue != null) {
        if (MessageHeaders.ERROR_CHANNEL.equals(headerName)
                || MessageHeaders.REPLY_CHANNEL.endsWith(headerName)) {
            if (!(headerValue instanceof MessageChannel || headerValue instanceof String)) {
                throw new IllegalArgumentException(
                        "'" + headerName + "' header value must be a MessageChannel or String");
            }//from ww  w.  ja v a2s.  com
        }
    }
}

From source file:org.springframework.messaging.support.MessageHeaderAccessor.java

public void setErrorChannelName(String errorChannelName) {
    setHeader(MessageHeaders.ERROR_CHANNEL, errorChannelName);
}

From source file:org.springframework.messaging.support.MessageHeaderAccessor.java

public void setErrorChannel(MessageChannel errorChannel) {
    setHeader(MessageHeaders.ERROR_CHANNEL, errorChannel);
}

From source file:org.springframework.messaging.support.MessageHeaderAccessor.java

public Object getErrorChannel() {
    return getHeader(MessageHeaders.ERROR_CHANNEL);
}