Dois ManagerBeans em uma mesma página, é possível?

Olá peoples!

tenho uma Página xhtml a principio usando jsf 2.0 + primefaces 2.2

Surge uma duvida que estou a 2 dias parado nisso, tenho 1 página com 2 ManagerBeans ou seja

PageList.xhtml
Nela contem meu Managerbean:

@ManagedBean(name=“clienteController”)
@SessionScoped
public class ClienteController implements Serializable{

}

até aí tudo bem, o problema é que minha página tem uns includes por exemplo:

<ui:include src=“includes/editarEnderecoCliente.xhtml” />
nesta Página já contem outro ManagerBean

@SuppressWarnings(“serial”)
@ManagedBean(name=“enderecoController”)
@SessionScoped
public class EnderecoController implements Serializable{

}

tentei os 2 com Scopo Session , ViewScoped, instalei o Jboss weld para poder utilizar o @ConversationScope
Mas nada adiantou
Quando clico num clique que irá acessar o ManagerBean2 ele ocorre um erro na lista de um DataTable que tenho no ManagerBean1

AVISO: / by zero
java.lang.ArithmeticException: / by zero
at org.primefaces.model.LazyDataModel.setRowIndex(LazyDataModel.java:62)
at javax.faces.component.UIData.setRowIndex(UIData.java:451)
at javax.faces.component.UIData.iterate(UIData.java:1429)
at javax.faces.component.UIData.processDecodes(UIData.java:983)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1047)

só pelo fato de eu abrir uma <p:dialog>

Como consigo deixar os 2 em uma página só , alguem tem uma situação parecida ?
Qualquer coisa será bem vinda

Que eu saiba você pode colocar quantos managed beans você quiser dentro de uma página, talvez não seja esse o problema

Manda todo o código pra gente ver, provavelmente o erro é com os dados da lista, já que ele está tentando dividir algo por zero

Que eu saiba da pra usar quantos managerBean vc quiser

Estranho realmente,
Então segue abaixo meu código conforme pedido:

ManagerBean da Tela de consulta clientes.xhtml

[code]
@ManagedBean(name=“clienteController”)
@SessionScoped
public class ClienteController implements Serializable{

private DataModel<Cliente> lazyModel;
private ClienteDao clienteDAO;
private Cliente cliente;
private Endereco endereco;
private List<Endereco> enderecos;

@PostConstruct
public void initialize(){
	_logger.info("# initialize");
	clienteDAO = ClienteDao.getInstance();
	load();
}

@PreDestroy
public void finish(){
	clienteDAO = null;
}

@SuppressWarnings("serial")
private void load(){
		lazyModel = new LazyDataModel<Cliente>(){
		public List<Cliente> load(int first, int pageSize, String sortField, boolean sortOrder, Map<String, String> filters) {
		   try {
			   Cliente c = new Cliente();
			   return clienteDAO.findAllCliente(c, first, pageSize);
		   } catch (DAOException e) {
			   _logger.log(Level.WARNING, e.getMessage(), e.getCause());
		   }
		   return null;
		}
		
		public int getRowCount() {
			int n =  clienteDAO.count(); // returna 0 (zero ) caso retorne nada
			return n;
		}
	};
}
    /* getters e setters */

}[/code]

clientes.xhtml

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.prime.com.tr/ui" 
    template="layout/template.xhtml">
    <ui:define name="body">
			<p:growl id="aviso" showSummary="true"/>
			 <h:form prependId="false" id="formLista">
  					<h:panelGrid columns="1" style="width:100%;text-align:right;">
########### Quando clico no botão NOVO ABAIXO QUE OCORRE AQUELE ERRO ###########################

		[b]<p:commandLink style="color:#000;" value="Novo" actionListener="#{clienteCadastroController.prepararAdicionar}" update="panelEdition,infoCliente" oncomplete="dialogCliente.show()"/>[/b]
####################################################################################
  					</h:panelGrid>
  					<p:outputPanel layout="block">
	  					<p:panel header="Resultado da busca #{clienteController.lazyModel.rowCount}">
<p:dataTable paginatorAlwaysVisible="true" id="listaCliente" value="#{clienteController.lazyModel}" var="cli">
		 	rows="15" paginator="true" dynamic="true" lazy="true" paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} "  selectionMode="single">
								<p:column style="width:230px;">
									<f:facet name="header">
										<h:outputText value="#{msg['cliente.nome']}" />
									</f:facet>
									<h:outputText value="#{cli.nome.fantasia}" />
								</p:column>
								<p:column style="width:130px;">
									<f:facet name="header">
										<h:outputText value="" />
									</f:facet>
									 <p:commandButton action="#{clienteCadastroController.excluir}" value="Excluir" update="listaCliente,aviso"> 
									 	<f:setPropertyActionListener value="#{cli}" target="#{clienteCadastroController.cliente}" /> 
									 </p:commandButton>
									 <p:commandButton actionListener="#{clienteCadastroController.prepararAlterar(cli)}" value="Alterar" update="listaCliente" oncomplete="dialogCliente.show()">
									 </p:commandButton> 
								</p:column>
								<p:ajaxStatus>  
					                <f:facet name="start">  
					                    <h:graphicImage value="images/ajaxloading.gif" />  
					                </f:facet>  
					                <f:facet name="complete">  
					                    <h:outputText value="" />  
					                </f:facet>  
					            </p:ajaxStatus>  
							</p:dataTable>
						</p:panel>
					</p:outputPanel>	
				  </h:form>
					<p:dialog id="panelEdition" header="#{clienteCadastroController.cliente.idCliente == 0 ? 'Novo' : 'Alterar' }" widgetVar="dialogCliente" resizable="false" modal="true" showEffect="slide" width="990" height="565">
			            	[b]<ui:include src="includes/cadCliente.xhtml">
			            	</ui:include>[/b]
			            	
	        	  	</p:dialog>
	</ui:define>
</ui:composition>

Segundo ManagerBean clienteCadastroController


@SuppressWarnings("serial")
@ManagedBean(name="clienteCadastroController")
@SessionScoped
public class ClienteCadastroController implements Serializable{

	private ClienteDao clienteDAO = ClienteDao.getInstance();
	
	private Cliente cliente;
	private Endereco endereco;
	private List<Endereco> enderecos;
	
	@PostConstruct
	public void initialize(){
		cleanUp();
	}
	
	private void cleanUp(){
		cliente = new Cliente();
		endereco = new Endereco();
		enderecos = new ArrayList<Endereco>();
	}
	
/* o Botão NOVO invoca esse método e dá o ERro de Array by /Zero do DataTable da primeiro ManagerBean */
	public void prepararAdicionar(ActionEvent actionEvent){
		cliente = new Cliente();
		endereco = new Endereco();
		enderecos = new ArrayList<Endereco>();
	}
	
	public void prepararAlterar(Cliente c){
		cliente = c;
		enderecos = new ArrayList<Endereco>(c.getEnderecos());
	}
	
	public void addEndereco(){
		enderecos.add(endereco);
		endereco = null;
	}

Erro ao clicar no botão:

20/01/2011 12:05:36 com.sun.faces.lifecycle.ApplyRequestValuesPhase execute
AVISO: / by zero
java.lang.ArithmeticException: / by zero
	at org.primefaces.model.LazyDataModel.setRowIndex(LazyDataModel.java:62)
	at javax.faces.component.UIData.setRowIndex(UIData.java:451)
	at javax.faces.component.UIData.iterate(UIData.java:1429)
	at javax.faces.component.UIData.processDecodes(UIData.java:983)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1047)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1047)
	at javax.faces.component.UIForm.processDecodes(UIForm.java:216)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1047)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1047)
	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:926)
	at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78) ......

Não faço idéia do por que disso !

Consegui solucionar o problema do / by Zero

segue o código abaixo que resolveu o problema, na verdade só ajustei o getRowCount()

[code]lazyModel = new LazyDataModel(){
public List load(int first, int pageSize, String sortField, boolean sortOrder, Map<String, String> filters) {
try {
Cliente c = new Cliente();
List cs = clienteDAO.findAllCliente(c, first, pageSize);
return cs;
} catch (DAOException e) {}
return null;
}

		public int getRowCount() {
			DataTable t = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("formLista:listaCliente");
	         if(t.isLazy() && !t.initiallyLoaded()) {
	        	 t.loadLazyData();
	             t.markAsLoaded();
	         }
	         	
		 return clienteDAO.count();
		}[/code]