code: PartialMatch findOrCreate(char[] key)
    {
  
      if (tc.isEntryEnabled())
        tc.entry(this,cclass, "findOrCreate", "key: " + new String(key));
  
      for (PartialMatch pm = this;; pm = pm.next)
      {
        if (Arrays.equals(key, pm.key))
        {
          if (tc.isEntryEnabled())
            tc.exit(this,cclass, "findOrCreate", "pm: " + pm);
          return pm;
        }
        if (pm.next == null || pm.next.key.length > key.length)
        {
          // We didn't get an exact key match, so we need to make a new PartialMatch
          // structure
          pm.next = newPartialMatch(key, pm.next);
  
          if (tc.isEntryEnabled())
            tc.exit(this,cclass, "findOrCreate", "pm.next: " + pm.next);
  
          return pm.next;
        }
      }
    }
docs: called on the zero keylen entry (first in the chain).