code: protected synchronized void releaseBeanContextResources() {
  
          for (Class serviceClass : _serviceProviders.keySet()) {
              ServiceProvider sp = _serviceProviders.get(serviceClass);
              if (sp.isDelegated()) {
                  sp.revoke(new BeanContextServiceRevokedEvent((BeanContextServices)getPeer(), serviceClass, true));
              }
          }
      }
docs: Invoked when all resources obtained from the current nested bean context
  need to be released. For BeanContextServices this means revoke any services
  obtained from a delegate services provider. Typically invoked when the parent
  context is changed.