code: public static BuildInfo load(InputStream propertiesStream) {
      Properties properties = new Properties();
      try {
        properties.load(propertiesStream);
      } catch (IOException e) {
        throw new IllegalStateException("Unable to load build info properties", e);
      } finally {
        try {
          propertiesStream.close();
        } catch (IOException e) {
          LOGGER.warn("Unable to close properties stream", e);
        }
      }
  
      return create(properties);
    }
docs: Creates an instance using properties from the given stream (which must be in property file
  format).
  
  <p>See {@link #create(Properties)} for a list of required properties.
  
  <p>For convenience, this method throws a runtime exception if an IOException occurs. If you
  plan to do anything other than crash in the event of an error, you should use
  {@link #create(Properties)} instead.