code: private static void writeValue(ObjectOutput out, Fieldable field) throws IOException
     {
        Object o = field.stringValue();
        if (o != null)
        {
           // Use writeObject instead of writeUTF because the value could contain unsupported
           // characters
           out.writeObject(o);
           return;
        }
        o = field.tokenStreamValue();
        if (o != null)
        {
           out.writeObject(o);
           return;
        }
        o = field.readerValue();
        throw new RuntimeException("Unsupported value " + o);
     }
docs: Serialize the value into the given {@link ObjectOutput}
  @param out the stream in which we serialize the value
  @param field the field from which we extract the value
  @throws IOException if the value could not be serialized