in core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java [97:141]
public BeanManager getBeanManager()
{
ClassLoader classLoader = ClassUtils.getClassLoader(null);
BeanManagerHolder resultHolder = bms.get(classLoader);
BeanManager result;
if (resultHolder == null)
{
result = resolveBeanManagerViaJndi();
if(result != null)
{
bms.put(classLoader, new RootBeanManagerHolder(result));
}
}
else
{
result = resultHolder.getBeanManager();
if (!(resultHolder instanceof RootBeanManagerHolder))
{
BeanManager jndiBeanManager = resolveBeanManagerViaJndi();
if (jndiBeanManager != null && /*same instance check:*/jndiBeanManager != result)
{
setRootBeanManager(jndiBeanManager);
result = jndiBeanManager;
}
else
{
setRootBeanManager(result);
}
}
}
if (result == null)
{
throw new IllegalStateException("Unable to find BeanManager. " +
"Please ensure that you configured the CDI implementation of your choice properly.");
}
return result;
}