docs: protected Result readExpiredByRange(ValueSet expiredIds, int index, int length) {
          final String methodName = "readExpiredByRange()";
          Result result = getFromResultPool();
          HashtableOnDisk cache_instance = null;
          this.scanExpiredTime = 0;
          try {
              rwLock.readLock().lock();
              cache_instance = object_cache;
              if (cache_instance == null) {
                  result.bComplete = true;
                  return result;
              }
              if (index == 0) {
                  cache_instance.rangeExpiredIndex = 0;
              }
              long t = System.nanoTime();
              DynaAction da = new DynaAction(expiredIds, this);
              int rangeIndex = cache_instance.iterateKeys(da, cache_instance.rangeExpiredIndex, length);
              this.scanExpiredTime = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - t);
  
              if ((expiredIds.size() + da.notExpiredCount) < length) {
                  cache_instance.rangeExpiredIndex = 0;
                  result.bComplete = true;
              } else {
                  cache_instance.rangeExpiredIndex = rangeIndex;
              }
          } catch (FileManagerException ex) {
              this.diskCacheException = ex;
              result.diskException = ex;
              result.returnCode = DISK_EXCEPTION;
          } catch (HashtableOnDiskException ex) {
              this.diskCacheException = ex;
              result.diskException = ex;
              result.returnCode = DISK_EXCEPTION;
          } catch (IOException ex) {
              this.diskCacheException = ex;
              result.diskException = ex;
              result.returnCode = DISK_EXCEPTION;
          } catch (Exception ex) {
              result.returnCode = OTHER_EXCEPTION;
              result.diskException = ex;
          } finally {
              rwLock.readLock().unlock();
              if (result.returnCode != NO_EXCEPTION) {
                  if (tc.isDebugEnabled())
                      Tr.debug(tc, methodName, "cacheName=" + this.cacheName + "\n Exception: " + ExceptionUtility.getStackTrace(result.diskException));
              }
              if (result.returnCode == DISK_EXCEPTION || result.returnCode == OTHER_EXCEPTION) {
                  com.ibm.ws.ffdc.FFDCFilter.processException(result.diskException, "com.ibm.ws.cache.HTODDynacache.readExpiredByRange", "1640", this);
              }
          }
  
          return result;
      }