msg.setJMSClientID(super.readUTF(dataIn));
msg.setProducerID(super.readUTF(dataIn));
msg.setJMSDestination(ActiveMQDestination.readFromStream(dataIn));
msg.setJMSDeliveryMode(dataIn.readByte());
msg.setJMSPriority(dataIn.readByte());
BitArray ba = msg.getBitArray();
msg.setJMSRedelivered(ba.get(ActiveMQMessage.REDELIVERED_INDEX));
msg.setXaTransacted(ba.get(ActiveMQMessage.XA_TRANS_INDEX));
if (ba.get(ActiveMQMessage.CORRELATION_INDEX)) {
msg.setJMSCorrelationID(super.readUTF(dataIn));
}
if (ba.get(ActiveMQMessage.TYPE_INDEX)) {
msg.setJMSType(super.readUTF(dataIn));
}
if (ba.get(ActiveMQMessage.BROKER_NAME_INDEX)) {
msg.setEntryBrokerName(super.readUTF(dataIn));
}
if (ba.get(ActiveMQMessage.CLUSTER_NAME_INDEX)) {
msg.setEntryClusterName(super.readUTF(dataIn));
}
if (ba.get(ActiveMQMessage.TRANSACTION_ID_INDEX)) {
msg.setTransactionId(super.readUTF(dataIn));
}
if (ba.get(ActiveMQMessage.REPLY_TO_INDEX)) {
msg.setJMSReplyTo(ActiveMQDestination.readFromStream(dataIn));
}
if (ba.get(ActiveMQMessage.TIMESTAMP_INDEX)) {
msg.setJMSTimestamp(dataIn.readLong());
}
if (ba.get(ActiveMQMessage.EXPIRATION_INDEX)) {
msg.setJMSExpiration(dataIn.readLong());
}
if (ba.get(ActiveMQMessage.CID_INDEX)) {
int cidlength = dataIn.readShort();
if (cidlength > 0) {
int[] cids = new int[cidlength];
for (int i = 0; i < cids.length; i++) {
cids[i] = dataIn.readShort();
}
msg.setConsumerNos(cids);
}
}
if (ba.get(ActiveMQMessage.PROPERTIES_INDEX)) {
msg.setProperties(msg.readMapProperties(dataIn));
}
if (ba.get(ActiveMQMessage.PAYLOAD_INDEX)) {
int payloadLength = dataIn.readInt();
if (payloadLength >= 0) {
byte[] payload = new byte[payloadLength];
dataIn.readFully(payload);
msg.setBodyAsBytes(payload);