When you write a producer for FacesContext like this
@Produces
public FacesContext produce() {
return FacesContext.getCurrentInstance();
}
do not forget to specify a scope! Otherwise you will get an Exception when accessing the object when it is injected in a session scoped bean. So the correct version looks like this:
@Produces
@RequestScoped
public FacesContext produce() {
return FacesContext.getCurrentInstance();
}