public static Message extractEmbedded(ICoreMessage message) { if (message.getType() == Message.EMBEDDED_TYPE) { ActiveMQBuffer buffer = message.getReadOnlyBodyBuffer(); if (buffer.readableBytes() < signature.length || !checkSignature(buffer)) { logger.tracef("Message type %d was used for something other than embed messages, ignoring content and treating as a regular message", Message.EMBEDDED_TYPE); return message; } try { return MessagePersister.getInstance().decode(buffer, null); } catch (Exception e) { logger.warn(e.getMessage(), e); return message; } } else { return message; } }
@Override public void decode(final ActiveMQBuffer buffer) { transactionID = buffer.readLong(); boolean isLargeMessage = buffer.readBoolean(); if (isLargeMessage) { int largeMessageHeaderSize = buffer.readInt(); if (storageManager == null) { largeMessageLazyData = new byte[largeMessageHeaderSize]; buffer.readBytes(largeMessageLazyData); } else { this.message = storageManager.createLargeMessage(); LargeMessagePersister.getInstance().decode(buffer, (LargeServerMessage) message); ((LargeServerMessage) message).incrementDelayDeletionCount(); } } else { this.message = MessagePersister.getInstance().decode(buffer, null); } int queueIDsSize = buffer.readInt(); queueIDs = new long[queueIDsSize]; for (int i = 0; i < queueIDsSize; i++) { queueIDs[i] = buffer.readLong(); } }
Message message = MessagePersister.getInstance().decode(buff, null);
Message message = MessagePersister.getInstance().decode(buff, null);
Message message = MessagePersister.getInstance().decode(buffer, null);