ee/src/main/java/org/jboss/as/ee/component/BasicComponent.java
public void stop() {
        if (stopping.compareAndSet(false, true)) {
            synchronized (this) {
                gate = false;
                this.interceptorInstanceMap = null;
                this.preDestroyInterceptor = null;
                this.postConstructInterceptor = null;
            }
            //TODO: only run this if there is no instances
            //TODO: trigger destruction of all component instances
            //TODO: this has lots of potential for race conditions unless we are careful
            //TODO: using stopContext.asynchronous() and then executing synchronously is pointless.
            // Use org.jboss.as.server.Services#addServerExecutorDependency to inject an executor to do this async
        }
    }
public void stop() {
        if (stopping.compareAndSet(false, true)) {
            synchronized (this) {
                gate = false;
                this.interceptorInstanceMap = null;
                this.preDestroyInterceptor = null;
                this.postConstructInterceptor = null;
            }
            //TODO: only run this if there is no instances
            //TODO: trigger destruction of all component instances
            //TODO: this has lots of potential for race conditions unless we are careful
            //TODO: using stopContext.asynchronous() and then executing synchronously is pointless.
            // Use org.jboss.as.server.Services#addServerExecutorDependency to inject an executor to do this async
        }
    }
{@inheritDoc}