public static Properties readProperties(DataInput in) throws IOException, ClassNotFoundException {

    InternalDataSerializer.checkIn(in);

    int size = InternalDataSerializer.readArrayLength(in);
    if (size == -1) {
      return null;
    } else {
      Properties props = new Properties();
      for (int index = 0; index < size; index++) {
        Object key = readObject(in);
        Object value = readObject(in);
        props.put(key, value);
      }
      if (logger.isTraceEnabled(LogMarker.SERIALIZER_VERBOSE)) {
        logger.trace(LogMarker.SERIALIZER_VERBOSE, "Read Properties with {} elements: {}", size,
            props);
      }
      return props;
    }
  }
Reads a <code>Properties</code> from a <code>DataInput</code>.
<P>
NOTE: the <code>defaults</code> are always empty in the returned <code>Properties</code>.

@param in the {@link DataInput} to read from
@return the deserialized Properties

@throws IOException If this serializer cannot read an object from <code>in</code>.
@throws ClassNotFoundException If the class cannot be loaded

@see #writeProperties
geode-core/src/main/java/org/apache/geode/DataSerializer.java