code: @Override
      public LoadKAMResult loadKamWithResult(KamInfo ki, KamFilter kf)
              throws KamCacheServiceException {
  
          if (ki == null) {
              throw new InvalidArgument("KamInfo required");
          }
  
          String handle;
          Callable<String> callable;
          if (kf != null) {
              // Check the fltrdMap cache first
              FilteredKAMKey key = new FilteredKAMKey(ki, kf);
              read.lock();
              try {
                  handle = fltrdMap.get(key);
              } finally {
                  read.unlock();
              }
              if (handle != null) {
                  // Cache hit
                  LoadKAMResult ret = new LoadKAMResult(handle, LOADED);
                  return ret;
              }
              // Cache miss, create a callable to defer loading
              callable = new CacheCallable(ki, kf);
          } else {
              read.lock();
              try {
                  handle = unfltrdMap.get(ki);
              } finally {
                  read.unlock();
              }
              if (handle != null) {
                  // Cache hit
                  LoadKAMResult ret = new LoadKAMResult(handle, LOADED);
                  return ret;
              }
              // Cache miss, create a callable to defer loading
              callable = new CacheCallable(ki, null);
          }
  
          // Submit and return
          execSvc.submit(callable);
  
          LoadKAMResult ret = new LoadKAMResult(null, LOADING);
          return ret;
      }
docs: {@inheritDoc}