in extscript-core-root/extscript-myfaces/src/main/java/org/apache/myfaces/extensions/scripting/jsf/adapters/handlers/MyFacesBeanHandler.java [78:124]
public void refreshAllManagedBeans()
{
if (FacesContext.getCurrentInstance() == null)
{
return;//no npe allowed
}
Collection<ClassResource> tainted = WeavingContext.getInstance().getTaintedClasses();
Set<String> taints = new HashSet<String>();
for (ClassResource taintedClass : tainted)
{
if(taintedClass.getAClass() != null) {
taints.add(taintedClass.getAClass().getName());
}
}
//scanElDependencies();
if (taints.size() > 0)
{
//We now have to check if the tainted classes belong to the managed beans
Set<String> managedBeanClasses = new HashSet<String>();
Map mbeans = RuntimeConfig.getCurrentInstance(FacesContext.getCurrentInstance().getExternalContext()).getManagedBeans();
Map mbeansSnapshotView;
//synchronized (RefreshContext.BEAN_SYNC_MONITOR) {
mbeansSnapshotView = makeSnapshot(mbeans);
//}
for (Object entry : mbeansSnapshotView.entrySet())
{
Object bean = (Object) ((Map.Entry) entry).getValue();
managedBeanClasses.add((String) ReflectUtil.executeMethod(bean, "getManagedBeanClassName"));//bean.getManagedBeanClassName());
}
boolean managedBeanTainted = isAnyManagedBeanTainted(taints, managedBeanClasses);
markPersonalScopeRefreshRecommended();
getLog().info("[EXT-SCRIPTING] Tainting all beans to avoid classcast exceptions");
if (managedBeanTainted)
{
globalManagedBeanRefresh(mbeansSnapshotView);
//personalScopeRefresh();
}
}
}