Not free message if it is the same sa input
Make sure the message is freed not to early
Use direct buffer by default
Use correct exception and explicit say in toString() when the packet was freed