### Question:
LongOption extends ValueOption<LongOption> { @SuppressWarnings("deprecation") @Override public int restore(byte[] bytes, int offset, int limit) throws IOException { if (limit - offset == 0) { throw new IOException(MessageFormat.format( "Cannot restore a long field ({0})", "invalid length")); } if (bytes[offset + 0] == 0) { setNull(); return 1; } else if (limit - offset >= 1 + 1) { modify(ByteArrayUtil.readLong(bytes, offset + 1) + Long.MIN_VALUE); return 8 + 1; } else { throw new IOException(MessageFormat.format( "Cannot restore a long field ({0})", "invalid length")); } } LongOption();  LongOption(long value); long get(); long or(long alternate); void add(long delta); void add(LongOption other); @Deprecated LongOption modify(long newValue); @Override @Deprecated void copyFrom(LongOption optionOrNull); @Override int hashCode(); @Override boolean equals(Object obj); boolean has(long other); @Override int compareTo(WritableRawComparable o); @Override String toString(); @Override void write(DataOutput out); @SuppressWarnings("deprecation") @Override void readFields(DataInput in); @SuppressWarnings("deprecation") @Override int restore(byte[] bytes, int offset, int limit); @Override int getSizeInBytes(byte[] buf, int offset); @Override int compareInBytes(byte[] b1, int o1, byte[] b2, int o2); static int getBytesLength(byte[] bytes, int offset, int length); static int compareBytes(
            byte[] b1, int s1, int l1,
            byte[] b2, int s2, int l2);  }### Answer:
@Test public void writeNull() { LongOption option = new LongOption(); LongOption restored = restore(option); assertThat(restored.isNull(), is(true)); }