Primefaces + menu item + actionListener

Fala ai galera… to com seguinte problema… estou fazendo um menu com primefaces

<h:form> <p:menu type="tiered" style="width:180px"> <c:forEach items="#{menuBean.categorias}" var="categoria"> <p:submenu label="#{categoria.nome}" icon="ui-icon ui-icon-bullet"> <c:forEach items="#{categoria.subCategorias}" var="subCategoria"> <p:menuitem value="#{subCategoria.nome}" id="sub#{subCategoria.id}" actionListener="#{categoriaBean.save}" update="messages" icon="ui-icon ui-icon-bullet"> <f:setPropertyActionListener for="sub#{subCategoria.id}" target="#{categoriaBean.subCategoria}" value="#{subCategoria}" /> </p:menuitem> </c:forEach> </p:submenu> </c:forEach> </p:menu> </h:form>

Bean

........
@ManagedBean(name = "categoriaBean")
@ViewScoped
public class CategoriaBean implements Serializable {

	private static final long serialVersionUID = 1L;

	private SubCategoria subCategoria;
	

	public void save() {
		long sleepTime = 3000;
		try {
			System.out.println(getSubCategoria());
			Thread.sleep(sleepTime);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public SubCategoria getSubCategoria() {
		return subCategoria;
	}

	public void setSubCategoria(SubCategoria subCategoria) {
		this.subCategoria = subCategoria;
	}
	
}

Ocorre o seguinte… ao clicar no item… ele dispara o metodo SAVE antes de atribuir o valor no metodo setSubCategoria.
Depois de passar pelo save ele dispara o outro metodo.

O que pode está errado?

abraços