Bug selectOneMenu com p:ajax

Boa Tarde pessoal, to com uma problema que já rodei o google, o fórum, e todas as soluções possíveis e imaginarias e não achei nada que resolvesse.

Eu estou montando uma pagina, e com <p:selectOneMenu> e ao carregar um menu ele cai no bean executa um método e carrega o segundo combo, e assim por diante…

Bom o primeiro combo funcionou certo, carregou o segundo porem não funciona com o terceiro, ele so cai no método se eu escolher o “Selecione”, que vai com valor 0, fora isso ele não seta a variável projetos.

Já debuguei e vem tudo certo do banco… ele manda o objeto com todos os dados pra tela, só não seta o menu escolhido.

Ja não sei mas onde procurar.
agradeceria um help se possivel.

Obs: usando primefaces
Fonte abaixo.

<?xml version="1.0" encoding="ISO-8859-1"?>
<ui:composition template="/template/form.xhtml"
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">

	<ui:define name="form-content">
			<h:panelGrid id="Lancamentos" columns="3">
			<h:outputLabel value="Cliente:" />
			<p:selectOneMenu id="clientes" value="#{Inserirhoras.cliente}">
				<f:selectItem itemLabel="Selecione" itemValue="0" />
				<f:selectItems value="#{Inserirhoras.combo1}" var="x" itemLabel="#{x.nome}" itemValue="#{x.id}"/>
				<p:ajax update="projetos" listener="#{Inserirhoras.changeProjetos}" />
			</p:selectOneMenu>
			<h:panelGroup/>

			<h:outputLabel value="Projeto:" />
			<p:selectOneMenu id="projetos" value="#{Inserirhoras.projeto}">
				<f:selectItem itemLabel="Selecione" itemValue="0"  />
				<f:selectItems value="#{Inserirhoras.combo2}" var="y"  itemLabel="#{y.nomeProjeto}" itemValue="#{y.id}" />
				<p:ajax update="atividades" listener="#{Inserirhoras.mat}"/>
			</p:selectOneMenu>
			<h:panelGroup/>

			<h:outputLabel value="Atividade:" />
			<p:selectOneMenu id="atividades" value="#{Inserirhoras.atividades}">
				<f:selectItem itemLabel="Selecione" itemValue="" />
				<f:selectItems value="#{Inserirhoras.combo3}" var="atv" itemLabel="#{atv.nome}" itemValue="#{atv.id}"/> 
			</p:selectOneMenu>
			<p:message for="atividades" autoUpdate="true" />
		</h:panelGrid>
	</ui:define>
</ui:composition>

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import br.com.tenbu.atividade.view.AtividadesForm;
import br.com.tenbu.cliente.view.ClienteController;
import br.com.tenbu.cliente.view.ClientesForm;
import br.com.tenbu.htrabalhadas.control.HorasTrabalhadasService;
import br.com.tenbu.projetos.view.ProjetosForm;



@ManagedBean(name="Inserirhoras")
@RequestScoped
public class InserirHorasController {

	private ClienteController cli = new ClienteController();
	private ClientesForm form = new ClientesForm();
	private ProjetosForm projForm = new ProjetosForm();
	private AtividadesForm atvForm = new AtividadesForm();
	private String Cliente;
	private String projeto;
	private String Atividades;
	private List<ProjetosForm> projetosForm;
	private List<AtividadesForm> atividadesForm;
	
	public List<ClientesForm> getCombo1()
	{
		return cli.getLoadClientes();

	}
	
	public List<ProjetosForm> getCombo2()
	{
		return this.getProjetosForm();
	}
	
	public List<AtividadesForm> getCombo3()
	{
		return this.getAtividadesForm();
	}

	
	public List<ProjetosForm> getProjetosForm() {
		return projetosForm;
	}

	
	public String getAtividades() {
		return Atividades;
	}

	public void setAtividades(String atividades) {
		Atividades = atividades;
	}

	public List<AtividadesForm> getAtividadesForm() {
		return atividadesForm;
	}

	public void setAtividadesForm(List<AtividadesForm> atividadesForm) {
		this.atividadesForm = atividadesForm;
	}

	public void setProjetosForm(List<ProjetosForm> projetosForm) {
		this.projetosForm = projetosForm;
	}


	public InserirHorasController(){

	}

	public ClientesForm getForm() {
		return form;
	}

	public void setForm(ClientesForm form) {
		this.form = form;
	}

	public String getCliente() {
		return Cliente;
	}

	public void setCliente(String cliente) {
		Cliente = cliente;
	}

	public AtividadesForm getAtvForm() {
		return atvForm;
	}
	
	public void setAtvForm(AtividadesForm atvForm) {
		this.atvForm = atvForm;
	}
	
	public String getProjeto() {
		return projeto;
	}
	
	public void setProjeto(String projeto) {
		this.projeto = projeto;
	} 
	
	public void changeProjetos() {  
		if(Cliente !=null && !Cliente.equals("0")) { 
		form.setId(Cliente);
		HorasTrabalhadasService service;
		List<ProjetosForm> proj = new ArrayList<ProjetosForm>();
		service = new HorasTrabalhadasService();
		proj = service.findProjetos(form.toClientesVO());
		
		this.setProjetosForm(proj);
		}
	}
	
	public void mat() {   // Mudando o nome pra testar
		if(projeto !=null && !projeto.equals("0")) {
		
		projForm.setId(projeto);
		
		HorasTrabalhadasService service;
		service = new HorasTrabalhadasService();
		atividadesForm = service.findAtividades(projForm.toProjetosVO());
		
		this.setAtividadesForm(atividadesForm);
		}
	}

}