code: private CacheEntry getCacheEntry(Object value, boolean create)
    {
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        tc.entry(
          this,cclass,
          "getCacheEntry",
          new Object[] { value, new Boolean(create), matchCache });
  
      CacheEntry e = (CacheEntry) matchCache.get(value);
      if (e == null)
      {
        if (create)
        {
          e = new CacheEntry();
          // The following method call may stimulate multiple callbacks to the shouldRetain
          // method if the Hashtable is at the rehash threshold.
          matchCache.put(value, e);
          cacheCreates++;
        }
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        tc.exit(this,cclass, "getCacheEntry", e);
  
      return e;
    }
docs: Gets the appropriate CacheEntry for a value of the root Identifier
  
  @param value the value whose CacheEntry is desired
  
  @param create if true, the CacheEntry is created (empty) if it doesn't already exist.
  This should only be done in synchronized methods.