code: @Override
  	public void exitScope() {
  		Map<Key<?>, Object> scopeMap = checkNotNull(getScopeMapForCurrentThread(),
  				"No scope map found for the current thread. Forgot to call enterScope()?");
  		performDisposal(scopeMap);
  		nonInheritableScopeCache.remove();
  		inheritableScopeCache.remove();
  		log.debug("Exited scope.");
  	}
docs: Exits the scope context for the current thread. Call this method after a thread is done in
  order to avoid memory leaks and to enable the thread to enter a new scope context again.
  
  @throws IllegalStateException
  if there is no scope context for the current thread