code: public synchronized Set<Map.Entry<Object,Object>> entrySet() {
          checkInitialized();
          if (entrySet == null) {
              if (entrySetCallCount++ == 0)  // Initial call
                  entrySet = Collections.unmodifiableMap(this).entrySet();
              else
                  return super.entrySet();   // Recursive call
          }
  
          // This exception will be thrown if the implementation of
          // Collections.unmodifiableMap.entrySet() is changed such that it
          // no longer calls entrySet() on the backing Map.  (Provider's
          // entrySet implementation depends on this "implementation detail",
          // which is unlikely to change.
          if (entrySetCallCount != 2)
              throw new RuntimeException("Internal error.");
  
          return entrySet;
      }
docs: Returns an unmodifiable Set view of the property entries contained
  in this Provider.
  
  @see   java.util.Map.Entry
  @since 1.2