code: private void updateAttributesCache(String key, Attributes missAttrs, Attributes cachedAttrs) {
          final String METHODNAME = "updateAttributeCache(key,missAttrs,cachedAttrs)";
          if (missAttrs.size() > 0) {
              boolean newAttr = false; // differentiate between a new entry and an entry we'll update so we change the cache correctly and maintain the creation TTL.
              if (cachedAttrs != null) {
                  cachedAttrs = (Attributes) cachedAttrs.clone();
              } else {
                  cachedAttrs = new BasicAttributes(true);
                  newAttr = true;
              }
  
              //Set extIdAttrs = iLdapConfigMgr.getExtIds();
              for (NamingEnumeration<?> neu = missAttrs.getAll(); neu.hasMoreElements();) {
                  Attribute attr = (Attribute) neu.nextElement();
                  // If the size of the attributes is larger than the limit, don not cache it.
                  if (!(iAttrsSizeLmit > 0 && attr.size() > iAttrsSizeLmit)) {
                      cachedAttrs.put(attr);
                  }
              }
              if (newAttr) {
                  getAttributesCache().put(key, cachedAttrs, 1, iAttrsCacheTimeOut, 0, null);
              } else {
                  getAttributesCache().put(key, cachedAttrs);
              }
              if (tc.isDebugEnabled()) {
                  Tr.debug(tc, METHODNAME + " Update " + iAttrsCacheName + "(size: " + getAttributesCache().size() + " newEntry: " + newAttr + ")\n" + key + ": " + cachedAttrs);
              }
          }
      }
docs: Update the attributes cache for the specified key.
  
  @param key The key for the cached attributes. This is usually the distinguished name.
  @param missAttrs The missing/new attributes.
  @param cachedAttrs The cached attributes.