Problema com converter {0}: Ocorreu um erro de conversão

Galerinha to com o seguinte problema
tenho uma lista de selectonemenu que estão fazendo vários filtros,mais quando vou mostra o resultado dele
ele me retorna o seguinte erro:

{0}: Ocorreu um erro de conversão.

o codigo do meu bean da minha js e do meu converter

Bean


package visao;

import implementacoes.InterfaceBean;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import org.primefaces.event.FlowEvent;
import org.primefaces.event.RowEditEvent;

import dao.ClienteDao;
import dao.DefeitoDao;
import dao.MarcaDao;
import dao.ModeloDao;
import dao.ProdutoDao;
import entidade.Cliente;
import entidade.Defeito;
import entidade.Marca;
import entidade.Modelo;
import entidade.Processo;
import entidade.Produto;

@ManagedBean(name="processobean")
@SessionScoped
public class ProcessoBean implements Serializable,InterfaceBean {

	/**
	 * 
	 */
	private static final long serialVersionUID = 8197375602768731410L;


	private Marca marcaSelecionada ;
	private Produto produtoSelecionado ;
	private Cliente clienteSelecionado = new Cliente();
	private Modelo modeloSelecionado = new Modelo();
	private Cliente cliente;
	private Defeito defeitoSelecionado ;
	private Processo processo = new Processo();
	private static Logger logger = Logger.getLogger(ProcessoBean.class.getName());  
	private List<Object> listaCliente;
	private List<Object> listaDefeito;
	private List<Modelo> listaModelo;
	private List<Object> listaMarca;
	private List<Produto> listaProduto;
	private List<Modelo> sugestoes = new ArrayList<Modelo>();
	private boolean skip;
	
	
	@PostConstruct
	public void init(){
		listaMarca =  new MarcaDao().listaMarca();
	}
	
	public List<Produto> produtosMarca() {
			Marca marca = marcaSelecionada;
			listaProduto = new ProdutoDao().produtoMarca(marca);
		return listaProduto;
	}
	
	public List<Modelo> modeloProduto(){	
			listaModelo =  new ModeloDao().modeloProduto(produtoSelecionado);
		return listaModelo;
	}
	
	public List<Object> defeitoProduto(){
		listaDefeito = (ArrayList<Object>) new DefeitoDao().defeitoProduto(produtoSelecionado);
		return listaDefeito;
	}
	
	
	public List<Modelo> teste(String query){
		List<Modelo> sugestoes = new ArrayList<Modelo>();
		for (Modelo j : this.listaModelo) {
			if (j.getModelo().startsWith(query)) {
				sugestoes.add(j);
			}
		}
		
		return sugestoes;
	}
	
	public List<Object> listarObject() {
		return null;
	}

	@Override
	public Object prepararAdicionarObject() {
		return null;
	}

	@Override
	public void editObject(RowEditEvent event) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public String deleteObject(RowEditEvent event) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void saveObject() {
		processo.setDefeito(defeitoSelecionado);
	}
	
	public String onFlowProcess(FlowEvent event) {  
		logger.info("Current wizard step:" + event.getOldStep());  
        logger.info("Next step:" + event.getNewStep());  

        if(skip) {  
            skip = false;   
            return "confirm";  
        }  
        else {  
            return event.getNewStep();  
        }   
	}  

	public List<Object> getListaCliente() {
		if (listaCliente == null) {
			listaCliente = (ArrayList<Object>) new ClienteDao().listaCliente();
		}
		
		return this.listaCliente;
	}

	public void setListaCliente(List<Object> listaCliente) {
		this.listaCliente = listaCliente;
	}
	
	public List<Object> getListaDefeito() {
		if (listaDefeito == null) {
			listaDefeito = (ArrayList<Object>) new DefeitoDao().listaDefeito();
		}
		
		return this.listaCliente;
	}
	
	public List<Modelo> getListaModelo() {
		return listaModelo;
	}

	public void setListaDefeito(List<Object> listaDefeito) {
		this.listaDefeito = listaDefeito;
	}
	
	public void setListaModelo(List<Modelo> listaModelo) {
		this.listaModelo = listaModelo;
	}
	
	public Processo getProcesso() {
		return processo;
	}
	
	public Defeito getDefeitoSelecionado() {
		return defeitoSelecionado;
	}

	public void setDefeitoSelecionado(Defeito defeitoSelecionado) {
		this.defeitoSelecionado = defeitoSelecionado;
	}

	public void setProcesso(Processo processo) {
		this.processo = processo;
	}

	public Cliente getClienteSelecionado() {
		return clienteSelecionado;
	}

	public void setClienteSelecionado(Cliente clienteSelecionado) {
		this.clienteSelecionado = clienteSelecionado;
	}

	public boolean isSkip() {
		return skip;
	}

	public void setSkip(boolean skip) {
		this.skip = skip;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public Modelo getModeloSelecionado() {
		return modeloSelecionado;
	}

	public void setModeloSelecionado(Modelo modeloSelecionado) {
		this.modeloSelecionado = modeloSelecionado;
	}

	public Marca getMarcaSelecionada() {
		return marcaSelecionada;
	}

	public void setMarcaSelecionada(Marca marcaSelecionada) {
		this.marcaSelecionada = marcaSelecionada;
	}

	public Produto getProdutoSelecionado() {
		return produtoSelecionado;
	}

	public void setProdutoSelecionado(Produto produtoSelecionado) {
		this.produtoSelecionado = produtoSelecionado;
	}

	public static Logger getLogger() {
		return logger;
	}

	public static void setLogger(Logger logger) {
		ProcessoBean.logger = logger;
	}

	public List<Object> getlistaMarca() {
		return listaMarca;
	}

	public void setListaMarca(List<Object> listaMarca) {
		this.listaMarca = listaMarca;
	}

	public List<Produto> getListaProduto() {
		return listaProduto;
	}

	public void setListaProduto(List<Produto> listaProduto) {
		this.listaProduto = listaProduto;
	}

	public List<Modelo> getSugestoes() {
		return sugestoes;
	}

	public void setSugestoes(List<Modelo> sugestoes) {
		this.sugestoes = sugestoes;
	}

}

JSF


<!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:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">
	
	<h:head>
	<title>Novo Processo</title>
	</h:head>
	<h:body>
		
		<h:form id="formProcesso">
			<p:growl id="growl" sticky="true" showDetail="true"/>
			<p:wizard widgetVar="wiz"  
           		flowListener="#{processobean.onFlowProcess}">
           		<p:tab id="notaFiscal" title="NotaFiscal">  	
           			 <p:panel header="Dados Nota Fiscal"> 
           			 	<h:messages errorClass="error"/>  
           			  <h:panelGrid columns="2" columnClasses="label, value" styleClass="grid">
           			  	<h:outputText value="Data: " />  
                    	<h:outputText value="#{processobean.processo.dataCadastro}" />  
                    	
                    	<h:outputText value="Cliente: " />  
                    	<h:selectOneMenu id="cliente" value="#{processobean.clienteSelecionado}"
							converter="converterCliente" items="#{processobean.listaCliente}">
							<f:selectItems value="#{processobean.listaCliente}" var="cliente"
								itemLabel="#{cliente.cliente}" itemValue="#{cliente}" />
						</h:selectOneMenu>
						
						<h:outputText value="NUM.NF" />
						<h:inputText value="#{processobean.processo.numeroNotaFiscal}" />
						
						<h:outputText value="CFOP correto" />
						<h:selectOneMenu id="cfop" value="#{processobean.processo.cfop}">
							<f:selectItem  itemLabel="SIM" itemValue="SIM"/>
							<f:selectItem  itemLabel="NÃO" itemValue="NÃO"/> 
						</h:selectOneMenu>
						
						<h:outputText value="IPI destacado" />
						<h:selectOneMenu id="ipi" value="#{processobean.processo.ipi}">
							<f:selectItem  itemLabel="SIM" itemValue="SIM"/>
							<f:selectItem  itemLabel="NÃO" itemValue="NÃO"/> 
						</h:selectOneMenu>
						
						<h:outputText value="ICMS destacado" />
						<h:selectOneMenu id="icms" value="#{processobean.processo.icms}">
							<f:selectItem  itemLabel="SIM" itemValue="SIM"/>
							<f:selectItem  itemLabel="NÃO" itemValue="NÃO"/> 
						</h:selectOneMenu>
						
						<h:outputText value="Descrição da nota correta" />
						<h:selectOneMenu id="descricaoNota" value="#{processobean.processo.descricaoNota}">
							<f:selectItem  itemLabel="SIM" itemValue="SIM"/>
							<f:selectItem  itemLabel="NÃO" itemValue="NÃO"/> 
						</h:selectOneMenu>
						
						<h:outputText value="Descrição da nota correta" />
						<h:inputTextarea value="#{processobean.processo.descricaoNota}"/>
           			  </h:panelGrid>
           			 </p:panel>
           		</p:tab>
           		<p:tab id="defeito" title="Defeito">
           			<p:panel header="Detalhes Defeito">
						<h:messages errorClass="error"/>
						   <h:panelGrid columns="2" columnClasses="label, value" styleClass="grid">
						   		<h:outputText value="Marca: " />
						 		<h:selectOneMenu id="marca" value="#{processobean.marcaSelecionada}"
						 						 converter="converterMarcaProcesso" items="#{processobean.listaMarca}">
						 			<f:selectItems value="#{processobean.listaMarca}" var="marca"
						 			 				itemValue="#{marca}" itemLabel="#{marca.marca}"/>
						 			<f:ajax render="produto" event="valueChange" listener="#{processobean.produtosMarca}"/>
						 		</h:selectOneMenu>
						 		
						 		<h:outputText value="Produto: " />
						 		<h:selectOneMenu id="produto" value="#{processobean.produtoSelecionado}"
						 						 converter="converterProdutoProcesso" items="#{processobean.listaProduto}">
						 			<f:selectItems value="#{processobean.listaProduto}" var="produto"
						 			 				itemValue="#{produto}" itemLabel="#{produto.produto}"/>
						 			<f:ajax render="modelo" event="valueChange" listener="#{processobean.modeloProduto}"/>
						 			<f:ajax render="defeitoFild" event="valueChange" listener="#{processobean.defeitoProduto}"/>
						 		</h:selectOneMenu>
						  	
						 		<h:outputText value="Modelo: " />
						 		<p:autoComplete value="#{processobean.modeloSelecionado}" completeMethod="#{processobean.teste}" var="modelo" itemLabel="#{modelo.modelo}"
 									itemValue="#{modelo}" converter="converterModeloProcesso" id="modelo" forceSelection="true"/>
						 			 
						 		<h:outputText value="Defeito: " />
						 		<h:selectOneMenu id="defeitoFild" value="#{processobean.defeitoSelecionado}"
						 						 converter="converterDefeito">
						 			<f:selectItems value="#{processobean.defeitoProduto()}" var="defeito"
						 			 				itemValue="#{defeito}" itemLabel="#{defeito.defeito}"/>
						 		</h:selectOneMenu>
						 		
						 		<h:outputText value="Posição: " />
						 		<h:inputTextarea value="#{processobean.processo.descricaoDefeito}"/>
						   </h:panelGrid>        			
           			</p:panel>
           		</p:tab>
           		<p:tab id="confirmacao" title="Confirmação">
           			<p:panel header="Confirmação dos Dados">
						<h:messages errorClass="error"/>
						   <h:panelGrid columns="2" columnClasses="label, value" styleClass="grid">
						   		
						   		<h:outputText value="Os seguintes produtos foram inseridos para o processo de troca. " />  
						   		<h:outputLabel value="#{processobean.modeloSelecionado.modelo}" />  
						   		
						   		<h:outputText value="Data: " />  
                    			<h:outputLabel value="#{processobean.processo.dataCadastro}" />  
						   
						   		<h:outputText value="Cliente: " />
						   		<h:outputLabel value="#{processobean.clienteSelecionado.cliente}" />
						   		
						   		<h:outputText value="NUM.NF: " />
						   		<h:outputLabel value="#{processobean.processo.numeroNotaFiscal}" />
						   		
						   		<h:outputText value="Processo: " />
						   		<h:outputLabel value="#{processobean.processo.idProcesso}" />
						   		
						   </h:panelGrid>
					</p:panel>
				</p:tab>
           	</p:wizard>  
		</h:form>
	</h:body>
</html>

Converter


package implementacoes;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

import dao.ModeloDao;
import entidade.Modelo;

@FacesConverter(value="converterModeloProcesso")
public class ConverterModeloProcesso implements Converter {

	@Override
	public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
		ModeloDao dao = new ModeloDao();
		Modelo modelo = dao.findModeloByNome(arg2);
		return modelo;
	}

	@Override
	public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
		Modelo modelo = new Modelo();
		modelo = (Modelo) arg2;
		return modelo.getModelo();
	}

}

alguem me da uma luz ae?