Remove custom handling of byte[] in DefaultStompSession

Closes gh-23358
This commit is contained in:
Rossen Stoyanchev
2019-07-30 10:52:13 +01:00
parent 50a909908c
commit 1d92755cc7
2 changed files with 50 additions and 10 deletions

View File

@@ -256,12 +256,9 @@ public class DefaultStompSession implements ConnectionHandlingStompSession {
private Message<byte[]> createMessage(StompHeaderAccessor accessor, @Nullable Object payload) {
accessor.updateSimpMessageHeadersFromStompHeaders();
Message<byte[]> message;
if (payload == null) {
if (isEmpty(payload)) {
message = MessageBuilder.createMessage(EMPTY_PAYLOAD, accessor.getMessageHeaders());
}
else if (payload instanceof byte[]) {
message = MessageBuilder.createMessage((byte[]) payload, accessor.getMessageHeaders());
}
else {
message = (Message<byte[]>) getMessageConverter().toMessage(payload, accessor.getMessageHeaders());
accessor.updateStompHeadersFromSimpMessageHeaders();
@@ -274,6 +271,11 @@ public class DefaultStompSession implements ConnectionHandlingStompSession {
return message;
}
private boolean isEmpty(@Nullable Object payload) {
return payload == null || StringUtils.isEmpty(payload) ||
(payload instanceof byte[] && ((byte[]) payload).length == 0);
}
private void execute(Message<byte[]> message) {
if (logger.isTraceEnabled()) {
StompHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(message, StompHeaderAccessor.class);