code: public static Object readObject(final ObjectInput in)
              throws IOException, ClassNotFoundException {
          byte obyte = in.readByte();
          if (obyte == 0) {
              return null;
          }
          return in.readObject();
      }
docs: Reads the potentially null object from input.
  <p>
  This method doesn't differ in functionality with
  {@link ObjectInput#readObject()}, including its support for nulls. It
  exists as an analogue to the other methods here and as a point for
  documenting how nulls are handled.
  </p>
  
  @param in Non-null {@link ObjectInput}
  @return {@link Object}
  @throws IOException Thrown if an I/O error occurs
  @throws ClassNotFoundException Thrown if the class of the object being
  read cannot be found