ActionListener executando 2 vezes

Tenho um botão, que quando clico nele, ele acessa o método do bean 2 vezes, o que pode ser?

a pagina xhtml

o botao em questao eh o da linha 125

<?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">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets">

    <h:body>

        <ui:composition template="./newTemplate.xhtml">

            <ui:define name="top">
                top
            </ui:define>

            <ui:define name="left">
                <h:form id="formCliente">
                    <p:menu>
                        <p:submenu label="Cadastros">
                            <p:menuitem value="Cliente" url="/faces/cadastro_cliente.xhtml" icon="ui-icon ui-icon-disk"/>
                            <p:menuitem value="Fornecedor" url="/faces/cadastro_fornecedor.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
                            <p:menuitem value="Departamento" url="/faces/cadastro_departamento.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
                            <p:menuitem value="Funcionario" url="/faces/cadastro_funcionario.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
                            <p:menuitem value="Unidade de Medida" url="/faces/cadastro_unidade_medida.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
                            <p:menuitem value="Categoria" url="/faces/cadastro_categoria.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
                            <p:menuitem value="Marca" url="/faces/cadastro_marca.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
                            <p:menuitem value="Produto" url="/faces/cadastro_produto.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
                            <p:menuitem value="Banco" url="/faces/cadastro_banco.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
                        </p:submenu>
                        <p:submenu label="Consultas">
                            <p:menuitem value="Cliente" url="/faces/consulta_cliente.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
                            <p:menuitem value="Fornecedor" url="/faces/consulta_fornecedor.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
                            <p:menuitem value="Departamento" url="/faces/consulta_departamento.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
                            <p:menuitem value="Funcionario" url="/faces/consulta_funcionario.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
                            <p:menuitem value="Unidade Medida" url="/faces/consulta_unidade_medida.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
                            <p:menuitem value="Categoria" url="/faces/consulta_categoria.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
                            <p:menuitem value="Marca" url="/faces/consulta_marca.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
                            <p:menuitem value="Produto" url="/faces/consulta_produto.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
                            <p:menuitem value="Banco" url="/faces/consulta_banco.xhtml" icon="ui-icon ui-icon-arrowrefresh-1-w"/>
                        </p:submenu>
                        <p:submenu label="Venda">
                            <p:menuitem value="Pedido de Venda" url="/faces/realizar_pedidovenda.xhtml" icon="ui-icon ui-icon-star"/>
                            <p:menuitem value="TouchFaces" url="#{request.contextPath}/touch" icon="ui-icon ui-icon-star"/>
                        </p:submenu>
                    </p:menu>


                </h:form>
            </ui:define>

            <ui:define name="content">

                <h:form id="form">
                    <!--       Panel somente para deixar com um cara melhor nosso
                    cadastro-->
                    <p:panel header="Pedido de Venda">
                        <p:messages id="mensagens" showDetail="true" showSummary="true"/>
                        <h:panelGrid columns="2">

                            <h:outputLabel value="Cliente:" for="nomeCliente" />
                            <p:autoComplete binding="#{VendaBean.acCliente}" id="nomeCliente" value="#{VendaBean.selectedCliente}" completeMethod="#{VendaBean.completaNome}" size="50"
                                            var="cliente" itemLabel="#{cliente.nome}" itemValue="#{cliente}" converter="ClienteConverter">
                                <p:ajax event="itemSelect" update="tbl1" listener="#{VendaBean.SelecaoCliente}"/>
                            </p:autoComplete>

                        </h:panelGrid>
                        <p/>

                        <p:dataTable value="#{VendaBean.listCliente}" id="tbl1" var="cliente"
                                     emptyMessage="">

                            <p:column headerText="Nome: ">
                                <h:outputText value="#{cliente.nome}" />
                            </p:column>

                            <p:column headerText="CPF/CNPJ: ">
                                <h:outputText value="#{cliente.cpfCnpj}" />
                            </p:column>

                            <p:column headerText="End. para entrega: ">
                                <h:outputText value=" #{cliente.endereco}"/>
                                <h:outputText value=" #{cliente.complemento}"/>
                                <h:outputText value=" #{cliente.numero}"/>

                                <h:outputText value=" #{cliente.bairro}"/>
                                <h:outputText value=" #{cliente.cidade}"/>
                                <h:outputText value=" #{cliente.uf}"/>
                                <h:outputText value=" #{cliente.cep}"/>
                            </p:column>

                            <p:column style="width:100px">

                                <p:commandButton binding="#{VendaBean.alterarEndereco}" id="alterarEndereco" value="Alterar Endereço" update=":form:display" oncomplete="clienteDialog.show()">
                                    <f:setPropertyActionListener value="#{cliente}" target="#{VendaBean.selectedCliente}"/>
                                    <f:setPropertyActionListener value="#{true}" target="#{VendaBean.editMode}" />
                                </p:commandButton>
                            </p:column>

                        </p:dataTable>
                        <p/>




                        <p:commandButton binding="#{VendaBean.clBuscar}" id="clBuscar" value="Cliente vem buscar" update="tbl1" actionListener="#{VendaBean.ClienteBuscar}"
                                         onclick="clienteDialog.hide()"/>
                        <p/>
                        <br/>

                        <p:panel>
                            <h:panelGrid columns="2">


                                <h:outputLabel value="Produto:" for="nomeProduto" />
                                <p:autoComplete binding="#{VendaBean.acProduto}" id="nomeProduto" value="#{VendaBean.selectedProduto}" completeMethod="#{VendaBean.completaProduto}" size="50"
                                                var="produto" itemLabel="#{produto.nome}" itemValue="#{produto}" converter="ProdutoConverter">
                                    <p:ajax event="itemSelect" update="tbl2" listener="#{VendaBean.SelecaoProduto}"/>
                                </p:autoComplete>

                                <h:outputLabel value="Quantidade:" for="qtd" />
                                <p:inputText binding="#{VendaBean.itQtd}" id="qtd" value="#{VendaBean.qtd}" size="4"/>


                                <p:commandButton binding="#{VendaBean.cbAdicionar}" id="cbAdicionar" value="Adicionar" update="tbl2" actionListener="#{VendaBean.adcionarItem}"/>


                            </h:panelGrid>
                            <p/>

                            <p:dataTable value="#{VendaBean.listProduto}" id="tbl2" var="produto"
                                         emptyMessage="">

                                <p:column headerText="Nome: ">
                                    <h:outputText value="#{produto.nome}" />
                                </p:column>

                                <p:column headerText="Marca: ">
                                    <h:outputText value="#{produto.marca}" />
                                </p:column>

                                <p:column headerText="Categoria: ">
                                    <h:outputText value=" #{produto.categoria}"/>
                                </p:column>

                                <p:column headerText="Quantidade: ">
                                    <h:outputText value=" #{produto.qtd}"/>
                                </p:column>

                                <p:column headerText="Valor Unitário:">
                                    <h:outputText value="R$#{produto.precoFormatado}"/>
                                </p:column>

                                <p:column headerText="Total: ">
                                    <h:outputText value="R$#{produto.qtd * produto.custoUni}"/>
                                </p:column>

                            </p:dataTable>

                        </p:panel>
                        <p/>
                        <p:commandButton id="cbConfirmarPedido" binding="#{VendaBean.cbConfirmarPedido}" value="Confirmar Pedido" actionListener="#{VendaBean.confirmarPedido}" update="pagar nomeCliente clBuscar nomeProduto qtd cbAdicionar cbConfirmarPedido salvarOrcamento "/>

                        <p:commandButton id="salvarOrcamento" binding="#{VendaBean.salvarOrcamento}" value="Salvar Orçamento" update="tbl2" />

                        <p/>

                        <p:commandButton binding="#{VendaBean.pagar}" id="pagar" value="Pagar" disabled="true" action="#{VendaBean.RealizarPagamento}" ajax="false"/>




                        <!--Dialog para realizar update-->
                        <p:dialog header="Detalhes do Cliente" widgetVar="clienteDialog" resizable="false" id="clienteDlg"
                                  showEffect="fade" hideEffect="explode" modal="true">

                            <h:panelGrid id="display" columns="2" cellpadding="4" style="margin:0 auto;">

                                <h:outputText value="Endereço:" />
                                <h:panelGroup>
                                    <h:outputText value="#{VendaBean.selectedCliente.endereco}" style="font-weight:bold" rendered="#{!VendaBean.editMode}"/>
                                    <p:inputText id="end" label="end" rendered="#{VendaBean.editMode}" value="#{VendaBean.selectedCliente.endereco}" maxlength="80" size="50" style="text-transform:uppercase" required="true" requiredMessage="Informe o Endereço"/>
                                </h:panelGroup>

                                <h:outputText value="Complemento:" />
                                <h:panelGroup>
                                    <h:outputText value="#{VendaBean.selectedCliente.complemento}" style="font-weight:bold" rendered="#{!VendaBean.editMode}"/>
                                    <p:inputText id="comple" label="comple" rendered="#{VendaBean.editMode}" value="#{VendaBean.selectedCliente.complemento}" maxlength="45" size="50" style="text-transform:uppercase" />
                                </h:panelGroup>

                                <h:outputText value="Número:" />
                                <h:panelGroup>
                                    <h:outputText value="#{VendaBean.selectedCliente.numero}" style="font-weight:bold" rendered="#{!VendaBean.editMode}"/>
                                    <p:inputText id="nro" label="nro" rendered="#{VendaBean.editMode}" value="#{VendaBean.selectedCliente.numero}" maxlength="10" size="40"  style="text-transform:uppercase"/>
                                </h:panelGroup>

                                <h:outputText value="CEP:" />
                                <h:panelGroup>
                                    <h:outputText value="#{VendaBean.selectedCliente.cep}" style="font-weight:bold" rendered="#{!VendaBean.editMode}"/>
                                    <p:inputMask id="cep" label="cep" rendered="#{VendaBean.editMode}" value="#{VendaBean.selectedCliente.cep}" mask="99999-999"  required="true" requiredMessage="Informe o Cep"/>
                                </h:panelGroup>

                                <h:outputText value="Bairro:" />
                                <h:panelGroup>
                                    <h:outputText value="#{VendaBean.selectedCliente.bairro}" style="font-weight:bold" rendered="#{!VendaBean.editMode}"/>
                                    <p:inputText id="bairro" label="bairro" rendered="#{VendaBean.editMode}" value="#{VendaBean.selectedCliente.bairro}" maxlength="30" size="50" style="text-transform:uppercase" />
                                </h:panelGroup>

                                <h:outputText value="Cidade:" />
                                <h:panelGroup>
                                    <h:outputText value="#{VendaBean.selectedCliente.cidade}" style="font-weight:bold" rendered="#{!VendaBean.editMode}"/>
                                    <p:inputText id="cidade" label="cidade" rendered="#{VendaBean.editMode}" value="#{VendaBean.selectedCliente.cidade}" maxlength="30" size="50" style="text-transform:uppercase" required="true" requiredMessage="Informe a Cidade"/>
                                </h:panelGroup>

                                <h:outputText value="Estado:" />
                                <h:panelGroup>
                                    <h:outputText value="#{VendaBean.selectedCliente.uf}" style="font-weight:bold" rendered="#{!VendaBean.editMode}"/>
                                    <p:inputText id="uf" label="uf" rendered="#{VendaBean.editMode}" value="#{VendaBean.selectedCliente.uf}" maxlength="2" size="2" style="text-transform:uppercase" required="true" requiredMessage="Informe o Estado"/>
                                </h:panelGroup>


                                <f:facet name="footer">
                                    <p:outputPanel rendered="#{VendaBean.editMode}" layout="block" style="text-align:right">
                                        <p:commandButton value="Salvar" update="tbl1" actionListener="#{VendaBean.alterarCliente}"
                                                         onclick="clienteDialog.hide()" image="ui-icon ui-icon-check"/>
                                        <p:commandButton value="Cancelar" onclick="clienteDialog.hide()" image="ui-icon ui-icon-close"/>

                                    </p:outputPanel>
                                </f:facet>
                            </h:panelGrid>

                        </p:dialog>

                    </p:panel>
                </h:form>

            </ui:define>

        </ui:composition>

    </h:body>
</html>

o bean:

package br.com.sacx.controls;

import br.com.sacx.daos.ClienteDAO;
import br.com.sacx.daos.ProdutoDAO;
import br.com.sacx.daos.VendaDAO;
import br.com.sacx.models.Cliente;
import br.com.sacx.models.Produto;
import br.com.sacx.models.Venda;
import java.io.IOException;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import org.primefaces.component.autocomplete.AutoComplete;
import org.primefaces.component.commandbutton.CommandButton;
import org.primefaces.component.inputtext.InputText;
import org.primefaces.event.SelectEvent;

public class VendaBean implements Serializable {

    private Venda venda = new Venda();
    private VendaDAO dao = new VendaDAO();
    private ClienteDAO clienteDao = new ClienteDAO();
    private Cliente selectedCliente = new Cliente();
    private Cliente cliente = new Cliente();
    private ArrayList<Cliente> listCliente = new ArrayList<Cliente>();
    private ProdutoDAO produtoDao = new ProdutoDAO();
    private Produto selectedProduto = new Produto();
    private Produto produto = new Produto();
    private ArrayList<Produto> listProduto = new ArrayList<Produto>();
    private boolean editMode;
    private int qtd;
    private AutoComplete acCliente = new AutoComplete();
    private CommandButton clBuscar = new CommandButton();
    private AutoComplete acProduto = new AutoComplete();
    private InputText itQtd = new InputText();
    private CommandButton cbAdicionar = new CommandButton();
    private CommandButton cbConfirmarPedido = new CommandButton();
    private CommandButton salvarOrcamento = new CommandButton();
    private CommandButton pagar = new CommandButton();
    private CommandButton alterarEndereco = new CommandButton();

    public VendaBean() {
    }

    public List<Cliente> completaNome(String query) throws SQLException {
        ArrayList<Cliente> Clientes = clienteDao.getCliente();
        List<Cliente> sugestoes = new ArrayList<Cliente>();
        for (Cliente c : Clientes) {
            if (c.getNome().startsWith(query.toUpperCase())) {
                sugestoes.add(c);
            }
        }
        return sugestoes;
    }

    public List<Produto> completaProduto(String query) throws SQLException {
        ArrayList<Produto> listProduto = produtoDao.getProduto();
        List<Produto> sugestoes = new ArrayList<Produto>();
        for (Produto p : listProduto) {
            if (p.getNome().startsWith(query.toUpperCase())) {
                sugestoes.add(p);
            }
        }
        return sugestoes;
    }

    public void SelecaoCliente(SelectEvent event) {
        listCliente.clear();
        Cliente cli = (Cliente) event.getObject();//pega o objeto selecionado no autocomplete

        //
        listCliente.add(cli);
        selectedCliente = cli;
    }

    public void SelecaoProduto(SelectEvent event) {
        //listProduto.clear();// limpa a lista
        Produto p = (Produto) event.getObject();//pega o objeto selecionado no autocomplete

        //ajustando os campos do endereço para mostrar na tabela
       /* cli.setComplemento(" " + cli.getComplemento());
        cli.setNumero(", " + cli.getNumero());
        cli.setBairro(" - " + cli.getBairro());
        cli.setCidade(" - " + cli.getCidade());
        cli.setUf(" - " + cli.getUf() + " - ");*/

        //add o objeto  na lista
        // listProduto.add(p);

        selectedProduto = p;

    }

    public void alterarCliente() {
        selectedCliente.setEndereco(getSelectedCliente().getEndereco().toUpperCase());
        selectedCliente.setComplemento(getSelectedCliente().getComplemento().toUpperCase());
        selectedCliente.setNumero(getSelectedCliente().getNumero().toUpperCase());
        selectedCliente.setBairro(getSelectedCliente().getBairro().toUpperCase());
        selectedCliente.setCidade(getSelectedCliente().getCidade().toUpperCase());
        selectedCliente.setUf(getSelectedCliente().getUf().toUpperCase());

        listCliente.clear();
        listCliente.add(selectedCliente);

    }

    public void ClienteBuscar() {
        if (selectedCliente.getEndereco().equals("CLIENTE VEM BUSCAR") || selectedCliente.getEndereco().equals("")) {

            String mensagem = "Selecione um cliente";
            FacesContext context = FacesContext.getCurrentInstance();
            context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Aviso:", mensagem));

        }

        listCliente.get(0).setEndereco("CLIENTE VEM BUSCAR");
        listCliente.get(0).setComplemento(new String());
        listCliente.get(0).setNumero(new String());
        listCliente.get(0).setBairro(new String());
        listCliente.get(0).setCidade(new String());
        listCliente.get(0).setUf(new String());
        listCliente.get(0).setCep(new String());

       /* listCliente.clear();
        listCliente.add(selectedCliente);*/

    }

    public void adcionarItem(ActionEvent event) {
        selectedProduto.setQtd(getQtd());
        boolean verifica = false;

        //verifica se o msm produto ja esta na lista, se estiver apenas soma a qtd e o valor
        int codProduto = selectedProduto.getCodProduto();
        int qtd = selectedProduto.getQtd();
        BigDecimal total = selectedProduto.getCustoUni().multiply(BigDecimal.valueOf(qtd));
        for (Produto p : listProduto) {
            if (p.getCodProduto() == codProduto) {
                p.setQtd(p.getQtd() + qtd);
                p.setTotal(total);
                verifica = true;
            }
        }
        //se o produto nao estiver na lista (verifica = false) add ele
        if (verifica == false) {
            listProduto.add(getSelectedProduto());
        }
    }

    public void confirmarPedido() {
        getAcCliente().setDisabled(true);
        getClBuscar().setDisabled(true);
        getAcProduto().setDisabled(true);
        getItQtd().setDisabled(true);
        getCbAdicionar().setDisabled(true);
        getCbConfirmarPedido().setDisabled(true);
        getSalvarOrcamento().setDisabled(true);
        getAlterarEndereco().setDisabled(true);
        getPagar().setDisabled(false);
    }

    public void RealizarPagamento() {

        System.out.println("endereco = " + listCliente.get(0).getEndereco());

        getAcCliente().setDisabled(false);
        getClBuscar().setDisabled(false);
        getAcProduto().setDisabled(false);
        getItQtd().setDisabled(false);
        getCbAdicionar().setDisabled(false);
        getCbConfirmarPedido().setDisabled(false);
        getSalvarOrcamento().setDisabled(false);
        getAlterarEndereco().setDisabled(false);
        getPagar().setDisabled(true);

        FacesContext context = FacesContext.getCurrentInstance();
        try {
            context.getExternalContext().redirect("faces/pagar_pedido.xhtml");
        } catch (IOException ex) {
            Logger.getLogger(VendaBean.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    /**
     * @return the venda
     */
    public Venda getVenda() {
        return venda;
    }

    /**
     * @param venda the venda to set
     */
    public void setVenda(Venda venda) {
        this.venda = venda;
    }

    /**
     * @return the cliente
     */
    public Cliente getCliente() {
        return cliente;
    }

    /**
     * @param cliente the cliente to set
     */
    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

    /**
     * @return the listCliente
     */
    public ArrayList<Cliente> getListCliente() {
        return listCliente;
    }

    /**
     * @param listCliente the listCliente to set
     */
    public void setListCliente(ArrayList<Cliente> listCliente) {
        this.listCliente = listCliente;
    }

    /**
     * @return the editMode
     */
    public boolean isEditMode() {
        return editMode;
    }

    /**
     * @param editMode the editMode to set
     */
    public void setEditMode(boolean editMode) {
        this.editMode = editMode;
    }

    /**
     * @return the selectedCliente
     */
    public Cliente getSelectedCliente() {
        return selectedCliente;
    }

    /**
     * @param selectedCliente the selectedCliente to set
     */
    public void setSelectedCliente(Cliente selectedCliente) {
        this.selectedCliente = selectedCliente;
    }

    /**
     * @return the selectedProduto
     */
    public Produto getSelectedProduto() {
        return selectedProduto;
    }

    /**
     * @param selectedProduto the selectedProduto to set
     */
    public void setSelectedProduto(Produto selectedProduto) {
        this.selectedProduto = selectedProduto;
    }

    /**
     * @return the produto
     */
    public Produto getProduto() {
        return produto;
    }

    /**
     * @param produto the produto to set
     */
    public void setProduto(Produto produto) {
        this.produto = produto;
    }

    /**
     * @return the listProduto
     */
    public ArrayList<Produto> getListProduto() {
        return listProduto;
    }

    /**
     * @param listProduto the listProduto to set
     */
    public void setListProduto(ArrayList<Produto> listProduto) {
        this.listProduto = listProduto;
    }

    /**
     * @return the qtd
     */
    public int getQtd() {
        return qtd;
    }

    /**
     * @param qtd the qtd to set
     */
    public void setQtd(int qtd) {
        this.qtd = qtd;
    }

    /**
     * @return the acCliente
     */
    public AutoComplete getAcCliente() {
        return acCliente;
    }

    /**
     * @param acCliente the acCliente to set
     */
    public void setAcCliente(AutoComplete acCliente) {
        this.acCliente = acCliente;
    }

    /**
     * @return the acProduto
     */
    public AutoComplete getAcProduto() {
        return acProduto;
    }

    /**
     * @param acProduto the acProduto to set
     */
    public void setAcProduto(AutoComplete acProduto) {
        this.acProduto = acProduto;
    }

    /**
     * @return the itQtd
     */
    public InputText getItQtd() {
        return itQtd;
    }

    /**
     * @param itQtd the itQtd to set
     */
    public void setItQtd(InputText itQtd) {
        this.itQtd = itQtd;
    }

    /**
     * @return the cbAdicionar
     */
    public CommandButton getCbAdicionar() {
        return cbAdicionar;
    }

    /**
     * @param cbAdicionar the cbAdicionar to set
     */
    public void setCbAdicionar(CommandButton cbAdicionar) {
        this.cbAdicionar = cbAdicionar;
    }

    /**
     * @return the cbConfirmarPedido
     */
    public CommandButton getCbConfirmarPedido() {
        return cbConfirmarPedido;
    }

    /**
     * @param cbConfirmarPedido the cbConfirmarPedido to set
     */
    public void setCbConfirmarPedido(CommandButton cbConfirmarPedido) {
        this.cbConfirmarPedido = cbConfirmarPedido;
    }

    /**
     * @return the salvarOrcamento
     */
    public CommandButton getSalvarOrcamento() {
        return salvarOrcamento;
    }

    /**
     * @param salvarOrcamento the salvarOrcamento to set
     */
    public void setSalvarOrcamento(CommandButton salvarOrcamento) {
        this.salvarOrcamento = salvarOrcamento;
    }

    /**
     * @return the pagar
     */
    public CommandButton getPagar() {
        return pagar;
    }

    /**
     * @param pagar the pagar to set
     */
    public void setPagar(CommandButton pagar) {
        this.pagar = pagar;
    }

    /**
     * @return the clBuscar
     */
    public CommandButton getClBuscar() {
        return clBuscar;
    }

    /**
     * @param clBuscar the clBuscar to set
     */
    public void setClBuscar(CommandButton clBuscar) {
        this.clBuscar = clBuscar;
    }

    /**
     * @return the alterarEndereco
     */
    public CommandButton getAlterarEndereco() {
        return alterarEndereco;
    }

    /**
     * @param alterarEndereco the alterarEndereco to set
     */
    public void setAlterarEndereco(CommandButton alterarEndereco) {
        this.alterarEndereco = alterarEndereco;
    }
}

Bom dia, não achei explicação possível para o problema. É necessário utilizar actionListener? não pode ser somente action !?

Uma dica é: você pode colocar um breakpoint e analisar a pilha de execução para ver da onde esta vindo a segunda chamada, dai você identifica quem é o agente chamador, cercando mais a procura do erro.
Se possível tente também deixa este botão ajax=“false” e utilizar um ajax nativodo JSF como f:ajax - caso você use JSF 2.0

Qualquer dúvida estamos ae.

Olá amigo, obrigado pela resposta, então já tinha tentado usar o action com ajax=false, ai ele funciona normal, mas acontece que ocorre um outro problema, um outro método do componente autocomplete acaba sendo executado, nao sei porque e com isso muda uma propriedade do bean, com o actionListener não acontece isso…

Esta difícil mesmo. Olhei mais um pouco para ver se tinha algum lugar que você dava reRender/update em algum componente autocomplete ou componente que o englobava e não achei nada.

A forma que conheço para isto acontecer, seria um update neste componente.
Você trabalha muito com binding, pode ter alguma coisa no código que mexe nestes componentes, apesar de eu não ter visto nada na action que o seu botão chama.

Você analisou a pilha de execução ?! Conseguiu ver da onde vem a requisição a mais!?

Eu uso o binding pra poder desabilitar os componentes, quando clicar no botão pagar, não consegui ver de onde vem a outra requisição =/
vou continuar tentando aqui…

Continuo com o problema…

se deixo o actionListener ele executa duas vezes a ação…

se troco para action, todos os métodos do ManagedBean são acessados…

Como assim todos os métodos do MB são acessados?!
Não pode ser … Seu commandButton só tem uma tabela no update, logo ele só atualiza esta tabela.

eu tentei reproduzir o erro aqui, mas funciona normal …
Você pode disponibilizar o código para serem feitos testes ?!

Vou continuar a tentar

Bem na verdade, não entra em todos os métodos, mas sim nos métodos do evento itemSelect do autocomplete, como uso dois autocomplete’s, tem dois métodos do tipo no MB.

O problema ocorre no update do botão confirmar pedido…

Mas qual é a relação do confirmar pedido com o actionListener do adicionarItem ?!

Me explique o que acontece na hora que você adiciona um Item… ele aciona outros método de outros componentes?!
Só vejo uma explicação, ou você tem remoteCommand sendo executado no onclick/oncomplete ou qualquer outro evento js) ou seu update( reRender) esta atualizando outros componentes do form e forçando a atualização/submit de informações.

Tenta colocar o seu commandButton como ajaxSingle. ajaxSingle=“true” nas propriedades do botão, mas a ideia é que você mostre pro botão que ele NÃO deve submiter o forumlário inteiro e sim somente a info referente a ele e atualizar somente a tabela.

entendeu ?!

procure por algum propriedade que

Olá Guilherme, o que acontece é o seguinte, quando eu clico em confirmar pedido, eu tenho que desabilitar todos os commandButton’s e habilitar um commadButton chamado pagar, pra isso o update do confirmar pedido, atualiza vários botões, com certeza nesse momento que ocorre o problema…

no commandButton do primefaces não tem a opção ajaxSingle.