code: public final void close()
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "close");
  
      ArrayList<AORequestedTick> expiredTicks = new ArrayList<AORequestedTick>(tableOfRequests.size()); // approximately allocate correct size
      closeInternal(expiredTicks);
      int length = expiredTicks.size();
      for (int i = 0; i < length; i++)
      {
        AORequestedTick rt = (AORequestedTick) expiredTicks.get(i);
        parent.expiredRequest(rt.tick);
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "close");
  
    }
docs: Closes this object and all contained AORequestedTicks.
  For requests that are cancelled by this method, it will issue a callback to the parent.
  Note that even after this method returns, the parent may receive expiredRequest()
  and satisfiedRequest() callbacks. This is because other threads may have exited their
  synchronized (this) block before the close() executed, but are 'slow' so their callbacks
  have not occured yet.