code: public static Properties loadProperties(String resourceName, ClassLoader classLoader) throws IOException {
          Properties props = cache.get(resourceName);
          if (props == null) {
              props = new Properties();
              fillProperties(props, resourceName, classLoader);
              Properties existing = cache.putIfAbsent(resourceName, props);
              if (existing != null) {
                  props = existing;
              }
          }
          return props;
      }
docs: Load all properties from the specified class path resource
  (in ISO-8859-1 encoding), using the given class loader.
  <p>Merges properties if more than one resource of the same name
  found in the class path.</p>
  
  @param resourceName the name of the class path resource
  @param classLoader the class loader
  @return the Properties instance
  @throws IOException if loading failed