code: public static MethodValues find(byte[] name, int offset, int length) {
          MethodValues key = (MethodValues) myMatcher.match(name, offset, length);
          if (null == key) {
              synchronized (MethodValues.class) {
                  // protect against 2 threads getting here on the new value by
                  // testing again inside a sync block
                  key = (MethodValues) myMatcher.match(name, offset, length);
                  if (null == key) {
                      key = new MethodValues(new String(name, offset, length), true);
                      key.undefined = true;
                  }
              } // end-sync
          }
          return key;
      }
docs: Find the enumerated object matching the input name. If this name has
  never been seen prior, then a new object is created by this call.
  
  @param name
  @param offset
  - starting point in that input name
  @param length
  - length to use from that offset
  @return MethodValues
  @throws NullPointerException
  if input name is null