code: public static Map getAllProperties(Class clazz)
          throws IntrospectionException {
          
          synchronized (cPropertiesCache) {
              Map properties;
  
              Reference ref = (Reference)cPropertiesCache.get(clazz);
              if (ref != null) {
                  properties = (Map)ref.get();
                  if (properties != null) {
                      return properties;
                  }
                  else {
                      // Clean up cleared reference.
                      cPropertiesCache.remove(clazz);
                  }
              }
  
              properties = Collections.unmodifiableMap(createProperties(clazz));
              cPropertiesCache.put(clazz, new SoftReference(properties));
              return properties;
          }
      }
docs: A function that returns a Map of all the available properties on
  a given class including write-only properties. The properties returned
  is mostly a superset of those returned from the standard JavaBeans
  Introspector except more properties are made available to interfaces.
  
  @return an unmodifiable mapping of property names (Strings) to
  PropertyDescriptor objects.