CRUD JSF 2 + JDBC + PrimeFaces 3.5

Fala ai pessoal estou com um problema que esta me deixando louco, pois não consigo de forma alguma achar o erro e tão pouco a solução, vou explicar a situação: estou desenvolvendo um sistema simples que praticamente todo ele funciona somente com CRUD estou usando JSF 2 + primefaces 3.5 + banco de dados MYSQL. tenho uma classe DAO onde programei toda a persistencia com o banco de dados, tenho uma classe MANAGEDBEAN que é onde eu programei toda ação da interface do usuario (métodos que invocam os métodos da classe DAO para persistencia) e lógico as telas, em uma dessas telas tenho uma DATATABLE que exibe toda a lista do que ja tenho no banco de dados, e nessa DATATABLE também coloquei os botões para editar e excluir cada elemento da tabela, também tenho uma tela para adicionar novos elementos. Beleza agora vem os problemas: as ações de listar a tabela e de adicionar elementos estão funcionando corretamente, porém não consigo editar os elementos e nem excluir os mesmos. na função de editar tudo ocorre normalmente, não da nenhum erro, mas nada acontece e na função excluir é como se o valor do atributo do objeto passado como parametro para exclusao não estivesse sendo lido, mas não é lançada nenhuma exceção recebo a mensagem que o objeto foi excluido só que na verdade nada acontece. Ah estou usando um servidor GLASSFISH 3.1.2. segue abaixo o código:

A classe DAO:

public class TonerDAO {

	private Connection con;
	private Statement stm;

	
	public void conectar(){
		try {
			con = new ConnectionFactory().getConnection();
			stm = con.createStatement();
			System.out.println("conectado");
		} catch (SQLException e) {
			throw new RuntimeException(e);
		} catch (NamingException e) {
			throw new RuntimeException(e);
		}
	}
	
	public void fechar(){
		try {
			stm.close();
			con.close();
			System.out.println("desconectado");
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
		
	}
	
	public List<Toner> getLista(){
		conectar();
		try{
		
		ResultSet result = stm.executeQuery("select impressora.modelo, toner.patrimonio, toner.serie, toner.situacao from toner inner join impressora on impressora.id='1' and toner.situacao='NOVO'");
		
		List<Toner> lista = new ArrayList<Toner>();
		
			while(result.next()){
				Toner temp = new Toner();
			
				temp.setModelo(result.getString("modelo"));
				temp.setPatrimonio(result.getString("patrimonio"));
				temp.setSerie(result.getString("serie"));
				temp.setSituacao(result.getString("situacao"));
			
				lista.add(temp);
			}
		
		result.close();
		
		return lista;
		
		}catch(SQLException e){
			throw new RuntimeException(e);
		}finally{
			fechar();
		}
	}

	
	public void adicionaToner(Toner ton){
		conectar();
		System.out.println(ton.getPatrimonio().toUpperCase());
		
		try{
			
			stm.execute("insert into toner (patrimonio, serie, situacao, cor) values ('" + ton.getPatrimonio().toUpperCase() + "','" + ton.getSerie().toUpperCase() + "','" 
					  + ton.getSituacao().toUpperCase() + "','" + ton.getCor().toUpperCase() + "')");
			System.out.println(ton.getPatrimonio().toUpperCase());
		}catch(SQLException e){
			throw new RuntimeException(e);
		}finally{
			fechar();
		}
	
		
	}
	
	
	public void exlcuir(String patrimonio){
		conectar();
		System.out.println(patrimonio + "1");
		System.out.println("tentando exlcuir...");
		try {
			
			System.out.println(patrimonio + "2");
			stm.execute("delete from toner where patrimonio='" + patrimonio +"';");
			System.out.println(patrimonio + "3");
			System.out.println("excluido");
		} catch (SQLException e) {
			System.err.println(e.getMessage());
		}finally{
			fechar();
		}
	}
	
	
	public void atualizar(Toner ton){
		conectar();
		System.out.println(ton.getPatrimonio() + "dao1");
		try {
			stm.executeUpdate("update toner set patrimonio='" + ton.getPatrimonio().toUpperCase() + "',serie='" + ton.getSerie().toUpperCase() + "',situacao='"
								+ ton.getSituacao().toUpperCase() + "' where patrimonio='" + ton.getPatrimonio().toUpperCase() + "';");
			System.out.println(ton.getPatrimonio() + "dao2");
			System.out.println("editado ...");
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}finally{
			fechar();
		}
		
	}
}

A classe MANAGEDBEAN:

@ManagedBean
@SessionScoped
public class TonerBean implements Serializable {

        private static final long serialVersionUID = 1135163075951387945L;
       
       
        private Toner toner = new Toner();
        private List<Toner> lista = new ArrayList<Toner>();
        private TonerDAO dao = new TonerDAO();
        
        
        public TonerBean() throws SQLException, NamingException{
        	
        	toner.setSituacao("NOVO");
        	lista = dao.getLista();
		}
     
        public void adiciona(ActionEvent evt) {
        	
        		dao.adicionaToner(toner);
        		
                lista = dao.getLista();
                showMessage("Toner "  + toner.getPatrimonio().toUpperCase()  + "\n" + "adicionado com sucesso!");
                toner = new Toner();
        }
       
        public List<Toner> getList() throws SQLException, NamingException{
                TonerDAO dao = new TonerDAO();
               
                return dao.getLista();
               
        }
        
        public void remover(){
        	System.out.println(toner.getPatrimonio() + "bean1");
        	dao.exlcuir(toner.getPatrimonio());
        	lista = dao.getLista();
        	showMessage("Toner " + toner.getPatrimonio() + "\n" + "excluido com sucesso!");
        	
        	toner = new Toner();
        	toner.setSituacao("NOVO");
        }
        
        public void editar(){
        	System.out.println(toner.getPatrimonio() + "bean1");
        	dao.atualizar(toner);
        	lista = dao.getLista();
        	showMessage("Toner " + toner.getPatrimonio().toUpperCase() + "\n" + "atualizado com sucesso!");
        	
        	toner = new Toner();
        	
        }
        
        
       
        public void showMessage(String summary){
                FacesContext context = FacesContext.getCurrentInstance();
                context.addMessage(null, new FacesMessage(summary));
        }
       
        public Toner getToner() {
                return toner;
        }
        public void setToner(Toner toner) {
                this.toner = toner;
        }
        public List<Toner> getLista() {
                return lista;
        }
        public void setLista(List<Toner> lista) {
                this.lista = lista;
        }
       
}

Tela que tem as ações de editar e excluir:

 <h:form id="form">
               
                <p:graphicImage url="/resources/titulo_4260.png"/>
                
                <p:growl id="msg"/>
                <br/><br/>
               
                &lt;p:dataTable id="dataTable1" var="print" value="#{tonerBean.getList()}" styleClass="order-table" style="position: relative; left:22%;
                                                width: 60%"&gt;
                                               
                        &lt;f:facet name="header"&gt;
                                Lista de Toner Novos
                        &lt;/f:facet&gt;
                       
                        &lt;p:column headerText="MODELO" style="font-size:15px;"&gt;
                                &lt;h:outputText value="#{print.modelo}" /&gt;
                        &lt;/p:column&gt;
                       
                        &lt;p:column headerText="PATRIMONIO" style="font-size:15px;"&gt;
                                &lt;h:outputText value="#{print.patrimonio}" style="text-transform: uppercase"/&gt;
                        &lt;/p:column&gt;
                       
                        &lt;p:column headerText="SERIE" style="font-size:15px;"&gt;
                                &lt;h:outputText value="#{print.serie}" style="text-transform: uppercase"/&gt;
                        &lt;/p:column&gt;
                       
                        &lt;p:column headerText="SITUAÇÃO" style="font-size:15px;"&gt;
                                &lt;h:outputText value="#{print.situacao}" style="text-transform: uppercase"/&gt;
                        &lt;/p:column&gt;
                       
                        &lt;p:column headerText="AÇÕES" style="font-size:15px;"&gt;
                               
                                &lt;p:commandButton icon="ui-icon-pencil" update=":form:edit" oncomplete="editWidget.show()" title="editar"&gt;
                                	&lt;f:setPropertyActionListener target="#{tonerBean.toner}" value="#{print}"/&gt;
                                &lt;/p:commandButton&gt;
                                
                                &lt;p:commandButton icon="ui-icon-trash" update=":form:removeDialog" oncomplete="removeWidget.show()" title="excluir"&gt;
                                	&lt;f:setPropertyActionListener target="#{tonerBean.toner}" value="#{print}"/&gt;
                                &lt;/p:commandButton&gt;
                        &lt;/p:column&gt;
                       
                        &lt;f:facet name="footer"&gt;
                                Total de toner: #{fn:length(tonerBean.lista)} 
                        &lt;/f:facet&gt;
                &lt;/p:dataTable&gt;
                
                &lt;p:dialog header="Editar Toner" widgetVar="editWidget" resizable="false" modal="true"&gt;
                	&lt;h:panelGrid id="edit" columns="2" cellpadding="4" style="margin:0 auto;"&gt;
                		
                				&lt;p:outputLabel value="PATRIMONIO:" for="patrimonio"/&gt;
                                &lt;p:inputText id="patrimonio" style="text-transform: uppercase" value="#{tonerBean.toner.patrimonio}"/&gt;
                       
                                &lt;p:outputLabel value="SERIE: " for="serie"/&gt;
                                &lt;p:inputText id="serie" style="text-transform: uppercase" value="#{tonerBean.toner.serie}"/&gt;
                                
                                &lt;p:outputLabel value="Situação: " for="situacao"/&gt;
                                &lt;p:selectOneMenu id="situacao" value="#{tonerBean.toner.situacao}"&gt;
                                	&lt;f:selectItem itemLabel="NOVO" itemValue="NOVO"/&gt;
                                	&lt;f:selectItem itemLabel="EM USO" itemValue="EM USO"/&gt;
                                	&lt;f:selectItem itemLabel="USADO" itemValue="USADO"/&gt;
                                &lt;/p:selectOneMenu&gt;
                                
                                &lt;p:commandButton value="Editar" icon="ui-icon-check" action="#{tonerBean.editar}" oncomplete="editWidget.hide()" update="dataTable1, msg"/&gt;
                                
                	&lt;/h:panelGrid&gt;
                &lt;/p:dialog&gt;
                
                &lt;p:confirmDialog id="removeDialog" widgetVar="removeWidget" header="Remover toner"
                					message="Deseja realmente excluir o toner #{tonerBean.toner.patrimonio}?" severity="alert"&gt;
                					
                	&lt;p:commandButton value="sim" icon="ui-icon-check" action="#{tonerBean.remover}" oncomplete="removeWidget.hide()" update="dataTable1, msg"/&gt;
                	
                	&lt;!--&lt;p:commandButton value="cancelar" icon="ui-icon-close" onclick="removeWidget.hide()"/&gt;--&gt;
                
                &lt;/p:confirmDialog&gt;
               
            &lt;/h:form&gt;

Tela para adicionar um novo elemento (lembrando que aqui tudo funciona perfeitamente):

&lt;h:form id="form"&gt;
                &lt;p:growl id="msg" sticky="true"/&gt;
            &lt;p:panel header="NOVO TONER" id="panel" style="width: 50%; position: relative; left: 22%"&gt;
                       
                        &lt;p:messages id="messages"/&gt;
                        &lt;h:panelGrid columns="4" id="panelg"&gt;
                       
                                &lt;p:outputLabel value="PATRIMONIO:" for="patrimonio"/&gt;
                                &lt;p:inputText id="patrimonio" style="text-transform: uppercase" value="#{tonerBean.toner.patrimonio}"/&gt;
                       
                                &lt;p:outputLabel value="SERIE: " for="serie"/&gt;
                                &lt;p:inputText id="serie" style="text-transform: uppercase" value="#{tonerBean.toner.serie}"/&gt;
                                
                                &lt;p:outputLabel value="Situação: " for="situacao"/&gt;
                                &lt;p:inputText id="situacao" style="text-transform: uppercase" value="#{tonerBean.toner.situacao}" disabled="true"/&gt;
                                	
                                
                                
                                &lt;h:inputHidden id="cor" style="text-transform: uppercase" value="#{tonerBean.toner.cor}"/&gt;
                       
                                &lt;p:commandButton value="adicionar" actionListener="#{tonerBean.adiciona}"  update="panelg, msg" style="font-size: 14px"&gt;
                                        &lt;f:setPropertyActionListener target="#{tonerBean.toner.situacao}" value="NOVO"/&gt;
                                        &lt;f:setPropertyActionListener target="#{tonerBean.toner.cor}" value="PRETO" /&gt;
                                &lt;/p:commandButton&gt;
                               
                        &lt;/h:panelGrid&gt;
                       
                &lt;/p:panel&gt;
            &lt;/h:form&gt;

Coloca seu código entre as tags [code] para que possamos visualizar melhor!!!

E vc disse que não dá erro nenhum correto? Mais vc chegou a debugar para ver se entre no método?

ta ai Diogo coloquei as tags pra melhorar a visualização, e ja fiz varios testes inclusive nos codigos vc pode perceber varios “System.out.println” q coloquei para ver se os métodos estão se comportamento corretamente e todos eles são invocados e executados mas nada acontece para exclusão e atualização dos objetos

teu projeto ta no git ?

Por favor, NÃO POSTE O TÍTULO COM COM CAPS LOCK LIGADO. ALÉM DE PIORAR A LEITURA PARECE QUE VC TÁ GRITANDO.