code: public synchronized NavigableMap<Short, T> receive(ObjectInput objectInput) throws IOException, ClassNotFoundException {
          Packet<T> packet = Packet.<T>readExternalStatic(objectInput);
          return receive(packet);
      }
docs: Convenience method which reads the input of an {@link java.io.ObjectInput} with the help of
  internally called {@link Protocol#receive(Packet) <code>receive(package)</code>}.
  
  @param objectInput the object input to read the packaged user-data from
  @throws IOException if there was an error reading from the <code>ObjectInput</code>
  @throws ClassNotFoundException if the object being read from the <code>ObjectInput</code> is not of the correct type
  @see Protocol#send(Object) <code>receive(package)</code>