public void release(Object component) throws ComponentLifecycleException {
    if (component == null) {
      return;
    }

    ComponentManager componentManager =
        componentManagerManager.findComponentManagerByComponentInstance(component);

    if (componentManager == null) {
      if (parentContainer != null) {
        parentContainer.release(component);
      } else {
        getLogger()
            .warn(
                "Component manager not found for returned component. Ignored. component="
                    + component);
      }
    } else {
      componentManager.release(component);

      if (componentManager.getConnections() <= 0) {
        componentManagerManager.unassociateComponentWithComponentManager(component);
      }
    }
  }