code: public static Long readLong(final ObjectInput in) throws IOException {
          byte b = in.readByte();
          if (b == 0) return null;
          return in.readLong();
      }
docs: Reads a {@link Long} from the input.
  <p>
  This method and its equivalent {@link #writeLong(ObjectOutput, Long)
  write-variant} store {@code l} in a more efficient way than serializing
  the {@link Long} class.
  </p>
  
  @param in Non-null {@link ObjectInput}
  @return {@link Long}
  @throws IOException Thrown if an I/O error occurred