byte[] content = new byte[data.getEnd() - data.getPosition()];
data.copyToByteArray(content, 0, data.getPosition(), content.length);
fragment_buffer = append(fragment_buffer, content);
if ((flags & CHANNEL_FLAG_LAST) != 0) {
RdpPackage fullpacket = new RdpPackage(fragment_buffer.length);
fullpacket.copyFromByteArray(fragment_buffer, 0, 0, fragment_buffer.length);
// process the entire reconstructed packet
channel.process(fullpacket);
fragment_buffer = null;
}