code: @FFDCIgnore(InterruptedException.class)
      private boolean waitForIndex(int index) {
          final String methodName = "waitForIndex(): ";
          while (!!!tryToFetchElement(index)) {
              try {
                  if (stateLock.hasTimedOut()) {
                      markTimedOut();
                      if (tc.isDebugEnabled())
                          Tr.debug(tc, methodName + "TIMED OUT!");
                      return false;
                  }
                  if (tc.isDebugEnabled())
                      Tr.debug(tc, methodName + "waiting ...");
                  boolean result = stateLock.waitForEvent();
                  if (tc.isDebugEnabled())
                      Tr.debug(tc, methodName + "waitForEvent result is [" + result + "] will Loop again to check timeout");
              } catch (InterruptedException ignored) {
                  // NO FFDC
                  if (tc.isDebugEnabled())
                      Tr.debug(tc, methodName + "interrupted");
              }
          }
          return true;
      }
docs: Block until the element at <code>index</code> becomes available.
  
  @return true if the element is available, false otherwise