@Override public KieContainerInstanceImpl getContainer(String alias, ContainerLocator locator) { KieContainerInstanceImpl containerInstance = getContainer(alias); if (containerInstance == null) { List<KieContainerInstanceImpl> aliasedContainers = containersByAlias.getOrDefault(alias, new ArrayList<KieContainerInstanceImpl>()); if (aliasedContainers.isEmpty()) { // since there are no containers for given alias reject it throw new IllegalArgumentException("Container '" + alias + "' is not instantiated or cannot find container for alias '" + alias + "'"); } String containerId = locator.locateContainer(alias, aliasedContainers); if (containerId == null) { throw new IllegalArgumentException("Cannot find container for alias '" + alias + "'"); } aliasedContainers.stream() .filter(kci -> kci.getContainerId().equals(containerId)) .findAny() .orElseThrow(() -> new IllegalArgumentException("Container '" + containerId + "' is not associated with alias '" + alias + "'")); return getContainer(containerId); } return containerInstance; }