byte[] header = data.getHeader();
            PortableDataOutput output = (PortableDataOutput) out;
            DynamicByteBuffer headerBuffer = output.getHeaderBuffer();
            out.writeInt(header.length);
            out.writeInt(headerBuffer.position());
            headerBuffer.put(header);
        }
    }
    protected void writeDataInternal(ObjectDataOutput out, Data data) throws IOException {