public void writePacket(Packet packet, DataOutput dataOut) throws IOException {
ActiveMQMessage msg = (ActiveMQMessage) packet;
byte[] payload = msg.getBodyAsBytes();
BitArray ba = msg.getBitArray();
ba.reset();
writeUTF(msg.getId(),dataOut);
ba.set(AbstractPacket.RECEIPT_REQUIRED_INDEX, packet.isReceiptRequired());
Object[] visited = msg.getBrokersVisited();
boolean writeVisited = visited != null && visited.length > 0;
ba.set(AbstractPacket.BROKERS_VISITED_INDEX,writeVisited);