public synchronized void assertDisposed() {
    if (!isTracking) {
      throw new IllegalStateException("Double call of assertDisposed() - see 'Caused by:' for the previous call", trace);
    }

    Map<LibraryId, Library> leaked = dumpAll();
    try {
      stored.keySet().forEach(leaked::remove);
      for (Library library : leaked.values()) {
        System.err.println("Leaked library: "+library+" creation trace:\n"+((TraceableDisposable)library).getStackTrace());
        ((TraceableDisposable)library).throwDisposalError("Leaked library: "+library);
      }
    }
    finally {
      stored = null;
      trace = new Throwable();
      isTracking = false;
      myLibraryTable = null;
    }
  }
public synchronized void assertDisposed()