docs: public void close()
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(tc, "close");
  
      Enumeration streams = null;
      synchronized (this)
      {
        synchronized (streamTable)
        {
          closed = true;
          closeBrowserSessionsInternal();
          streams = streamTable.elements();
        }
      }
      // since already set closed to true, no more AOStreams will be created and added to the streamTable,
      // even if there is an
      // asynchronous stream creation in progress (the itemStream will be created, but no AOStream will
      // be added to the streamTable).
      while (streams.hasMoreElements())
      {
        StreamInfo sinfo = (StreamInfo) streams.nextElement();
        if (sinfo.stream != null)
        {
          sinfo.stream.close();
        }
      }
  
      synchronized (streamTable)
      {
        streamTable.clear();
      }
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "close");
    }